Implementation of the communications layer which uses named pipes. Pipes are created at initialization time, and are used throughout the whole simulation.
Inherits cParsimCommunications.
Public Member Functions | |
cNamedPipeCommunications () | |
virtual | ~cNamedPipeCommunications () |
Redefined methods from cParsimCommunications | |
virtual void | init (int numPartitions) override |
virtual void | shutdown () override |
virtual int | getNumPartitions () const override |
virtual int | getProcId () const override |
virtual cCommBuffer * | createCommBuffer () override |
virtual void | recycleCommBuffer (cCommBuffer *buffer) override |
virtual void | send (cCommBuffer *buffer, int tag, int destination) override |
virtual bool | receiveBlocking (int filtTag, cCommBuffer *buffer, int &receivedTag, int &sourceProcId) override |
virtual bool | receiveNonblocking (int filtTag, cCommBuffer *buffer, int &receivedTag, int &sourceProcId) override |
Constructor.
|
virtual |
Destructor.
|
overridevirtual |
Init the library. Here we create and open the named pipes.
|
overridevirtual |
Shutdown the communications library. Closes and removes the named pipes.
|
overridevirtual |
Returns total number of partitions.
|
overridevirtual |
Returns the id of this partition.
|
overridevirtual |
Creates an empty buffer of type cMemCommBuffer.
|
overridevirtual |
Recycle communication buffer after use.
|
overridevirtual |
Sends packed data with given tag to destination.
|
overridevirtual |
Receives packed data, and also returns tag and source procId. Normally returns true; false is returned if blocking was interrupted by the user.
|
overridevirtual |
Receives packed data, and also returns tag and source procId. Call is non-blocking – it returns true if something has been received, false otherwise.