#include <BlockPort.h>
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 |
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.