CCAFFEINE  0.8.8
Public Member Functions
BlockPort Class Reference

#include <BlockPort.h>

List of all members.

Public Member Functions

virtual void compute ()=0
virtual void update ()=0
virtual void setOverlapUniform (int radius, CCA_Block **b)=0
virtual void getBlock (CCA_Block **b)=0
virtual void releaseBlock (CCA_Block **b)=0

Detailed Description

BlockPort for use in applications exchanging data via contiguous blocks

Author:
Ben Allan, 11/04/1999, Sandia National Laboratories.
Version:
Id:
BlockPort.h,v 1.9 2004/10/16 05:53:21 baallan Exp

Member Function Documentation

virtual void BlockPort::compute ( ) [pure virtual]

Request that the owner of the vector do whatever it does to recompute the vector associated with this port. (This may be a NOP). Ben wants this to go away.

virtual void BlockPort::update ( ) [pure virtual]

Tell the owner of the vector that you have done something to the data in the vector associated with this port. Freshen the dirty data. (This may be a NOP).

virtual void BlockPort::setOverlapUniform ( int  radius,
CCA_Block **  b 
) [pure virtual]

Sets the minimum overlap needed when answering a future request / for the CCA_Block. The request is known by its pointer, so / in your code e.g. | class foo { | private: CCA_Block *myBlock; ... | func() { | do(bp->setOverlapsUnivorm(2,&myBlock); | bp->getBlock(&myBlock); | bd = myBlock->getDescription(); ... | bp->releaseBlock(&myBlock); | } | } |

virtual void BlockPort::getBlock ( CCA_Block **  b) [pure virtual]

Need more advanced/flexible interface for non-uniform overlaps written here. Extract the data object from this port. The component implementation will reference count based on this.

The component implementation *shall* persist based on this, meaning that while a getBlock is outstanding the component cannot respond to another getBlock() on the same port without sending back the same object and that while a getBlock is outstanding, the component will not under the table destroy the object that is outstanding.

The component implementation *may* lock on this, meaning it chooses not to perform any functions that require changing the data values in the object.

virtual void BlockPort::releaseBlock ( CCA_Block **  b) [pure virtual]

Opposite of getBlock. After a release call, the vector pointer previously obtained becomes undefined.


The documentation for this class was generated from the following file: