This class defines a shared-memory region between a master process and one or more child processes Region has three data structures:  
 More...
|  | 
|  | TunnelDef (size_t numBuffers, size_t bufferSize, uint32_t expectedChildren) | 
|  | Create a new tunnel. 
 | 
|  | 
|  | TunnelDef (void *sPtr) | 
|  | Access an existing tunnel Child creates the TunnelDef, reads the shmSize, and then resizes its map accordingly. 
 | 
|  | 
| uint32_t | initialize (void *sPtr) | 
|  | Finish setting up a tunnel once the manager knows the correct size of the tunnel and has mmap'd a large enough region for it. 
 | 
|  | 
| virtual | ~TunnelDef () | 
|  | Destructor. 
 | 
|  | 
| void | shutdown () | 
|  | Clean up a region. 
 | 
|  | 
| size_t | getTunnelSize () | 
|  | return size of tunnel 
 | 
|  | 
| ShareDataType * | getSharedData () | 
|  | return a pointer to the ShareDataType region 
 | 
|  | 
| void | writeMessage (size_t buffer, const MsgType &command) | 
|  | Write data to buffer, blocks until space is available. 
 | 
|  | 
| MsgType | readMessage (size_t buffer) | 
|  | Read data from buffer, blocks until message received. 
 | 
|  | 
| bool | readMessageNB (size_t buffer, MsgType *result) | 
|  | Read data from buffer, non-blocking. 
 | 
|  | 
| void | clearBuffer (size_t buffer) | 
|  | Empty the messages in a buffer. 
 | 
|  | 
| bool | isMaster () | 
|  | return whether this is a master-side tunnel or a child 
 | 
|  | 
template<typename ShareDataType, typename MsgType>
class SST::Core::Interprocess::TunnelDef< ShareDataType, MsgType >
This class defines a shared-memory region between a master process and one or more child processes Region has three data structures: 
- internal bookkeeping (InternalSharedData),
- user defined shared data (ShareDataType)
- multiple circular-buffer queues with entries of type MsgType
- Template Parameters
- 
  
    | ShareDataType | Type to put in the shared data region |  | MsgType | Type of messages being sent in the circular buffers |