SST  11.0.0
StructuralSimulationToolkit
SST::SharedRegionManager Class Referenceabstract
Inheritance diagram for SST::SharedRegionManager:
SST::SharedRegionManagerImpl

Public Member Functions

virtual SharedRegiongetLocalSharedRegion (const std::string &key, size_t size, uint8_t initByte=0)=0
 Create a SharedRegion that will only be shared with elements on the current rank. More...
 
virtual SharedRegiongetGlobalSharedRegion (const std::string &key, size_t size, SharedRegionMerger *merger=nullptr, uint8_t initByte=0)=0
 Create a SharedRegion that will be shared with elements on the all ranks. More...
 
virtual void publishRegion (SharedRegion *)=0
 
virtual bool isRegionReady (const SharedRegion *)=0
 
virtual void shutdownSharedRegion (SharedRegion *)=0
 
virtual void updateState (bool finalize)=0
 

Protected Member Functions

virtual void modifyRegion (SharedRegion *sr, size_t offset, size_t length, const void *data)=0
 
virtual void * getMemory (SharedRegion *sr)=0
 
virtual const void * getConstPtr (const SharedRegion *sr) const =0
 
virtual size_t getSize (const SharedRegion *sr) const =0
 

Friends

class SharedRegion
 

Member Function Documentation

virtual SharedRegion* SST::SharedRegionManager::getGlobalSharedRegion ( const std::string &  key,
size_t  size,
SharedRegionMerger merger = nullptr,
uint8_t  initByte = 0 
)
pure virtual

Create a SharedRegion that will be shared with elements on the all ranks.

The SharedRegion data will be merged across ranks before each round of calls to init().

Parameters
keyName of the SharedRegion. All elements using this name will get the same underlying data.
sizeSize of the SharedRegion. Elements can specify 0 size if they don't know the size of the region. At least one element will need to specify the size and all elements that specify a size must pass in the same size. There are many calls in SharedRegion that can't be called until the size is known.
mergerMerger to use when combining data across ranks
initByteValue to initialize all bytes in the region to
Returns
SharedRegion object to be used by the calling element to access the shared region.

Implemented in SST::SharedRegionManagerImpl.

virtual SharedRegion* SST::SharedRegionManager::getLocalSharedRegion ( const std::string &  key,
size_t  size,
uint8_t  initByte = 0 
)
pure virtual

Create a SharedRegion that will only be shared with elements on the current rank.

This type of SharedRegion is intended to have at least one element on each rank initialize the region.

Parameters
keyName of the SharedRegion. All elements om the rank using this name will get the same underlying data.
sizeSize of the SharedRegion. Elements can specify 0 size if they don't know the size of the region. At least one element will need to specify the size and all elements that specify a size must pass in the same size. There are many calls in SharedRegion that can't be called until the size is known.
initByteValue to initialize all bytes in the region to
Returns
SharedRegion object to be used by the calling element to access the shared region.

Implemented in SST::SharedRegionManagerImpl.

Referenced by SST::BaseComponent::getLocalSharedRegion().


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