cNamedPipeCommunications Class Reference

Parallel Simulation API: cNamedPipeCommunications Class Reference
Parallel Simulation API
cNamedPipeCommunications Class Reference

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

Description

Implementation of the communications layer which uses named pipes. Pipes are created at initialization time, and are used throughout the whole simulation.

Constructor & Destructor Documentation

◆ cNamedPipeCommunications()

Constructor.

◆ ~cNamedPipeCommunications()

virtual ~cNamedPipeCommunications ( )
virtual

Destructor.

Member Function Documentation

◆ init()

virtual void init ( int numPartitions)
overridevirtual

Init the library. Here we create and open the named pipes.

◆ shutdown()

virtual void shutdown ( )
overridevirtual

Shutdown the communications library. Closes and removes the named pipes.

◆ getNumPartitions()

virtual int getNumPartitions ( ) const
overridevirtual

Returns total number of partitions.

◆ getProcId()

virtual int getProcId ( ) const
overridevirtual

Returns the id of this partition.

◆ createCommBuffer()

virtual cCommBuffer * createCommBuffer ( )
overridevirtual

Creates an empty buffer of type cMemCommBuffer.

◆ recycleCommBuffer()

virtual void recycleCommBuffer ( cCommBuffer * buffer)
overridevirtual

Recycle communication buffer after use.

◆ send()

virtual void send ( cCommBuffer * buffer,
int tag,
int destination )
overridevirtual

Sends packed data with given tag to destination.

◆ receiveBlocking()

virtual bool receiveBlocking ( int filtTag,
cCommBuffer * buffer,
int & receivedTag,
int & sourceProcId )
overridevirtual

Receives packed data, and also returns tag and source procId. Normally returns true; false is returned if blocking was interrupted by the user.

◆ receiveNonblocking()

virtual bool receiveNonblocking ( int filtTag,
cCommBuffer * buffer,
int & receivedTag,
int & sourceProcId )
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.