A gate that belongs to a cross-partition link and represents the remote gate on the local partition. More...
#include <cproxygate.h>
Public Member Functions | |
Redefined cObject member functions | |
virtual std::string | info () const |
Redefined cGate member functions | |
virtual bool | deliver (cMessage *msg, simtime_t at) |
Address of remote gate | |
void | setRemoteGate (short procId, int moduleId, int gateId) |
short | getRemoteProcId () |
int | getRemoteModuleId () |
int | getRemoteGateId () |
cParsimPartition pointer | |
void | setPartition (cParsimPartition *seg) |
cParsimPartition * | getPartition () |
Generic associated data pointer | |
void | setSynchData (void *data) |
void * | getSynchData () |
Friends | |
class | cPlaceholderModule |
A gate that belongs to a cross-partition link and represents the remote gate on the local partition.
cProxyGate's belong to cPlaceholderModule objects, which represent a "remote" module in the local partition.
This class basically exists so that we can override the deliver() method of cGate so that it doesn't pass arriving messages to the module object but to parallel simulation layer (cParsimPartition) instead -- so cParsimPartition can deliver them to the remote partition.
cProxyGate contains the address of the corresponding remote gate as a (procId, moduleId, gateId) triplet:
virtual bool cProxyGate::deliver | ( | cMessage * | msg, | |
simtime_t | at | |||
) | [virtual] |
Redefined to pass message to the parallel simulation layer, cParsimPartition.
Invokes the cParsimPartition::processOutgoingMessage() method to transmit the message, then deletes the message object.
Reimplemented from cGate.
void cProxyGate::setSynchData | ( | void * | data | ) | [inline] |
Sets the data pointer in this object.
This pointer is used by the parallel simulation synchronizaton layer (cParsimSynchronizer) to store additional information about the gate.