16#ifndef __OMNETPP_CMESSAGE_H
17#define __OMNETPP_CMESSAGE_H
23#include "csimulation.h"
46 MK_PARSIM_BEGIN = -1000
56#define MAX_PARSIM_PARTITIONS 32768
103 short srcProcId = -1;
104 cArray *parList =
nullptr;
105 cObject *controlInfo =
nullptr;
106 void *contextPointer =
nullptr;
108 int senderModuleId = -1;
109 int senderGateId = -1;
110 int targetModuleId = -1;
111 int targetGateId = -1;
121 static uint64_t totalMsgCount;
122 static uint64_t liveMsgCount;
126 void _createparlist();
131 void setId(
msgid_t id) {messageId = id;}
143 void setSrcProcId(
int procId) {srcProcId = (short)procId;}
146 virtual int getSrcProcId()
const override {
return srcProcId;}
149 cArray *getParListPtr() {
return parList;}
177 explicit cMessage(
const char *name=
nullptr,
short kind=0);
197 virtual bool isPacket()
const override {
return false;}
214 virtual std::string
str()
const override;
435 virtual bool hasObject(
const char *name) {
return !parList ? false : parList->find(name)>=0;}
565 bool arrivedOn(
int gateId)
const {
return gateId==targetGateId;}
578 bool arrivedOn(
const char *gateName,
int gateIndex)
const;
607 void setArrival(
int moduleId,
int gateId) {targetModuleId = moduleId; targetGateId = gateId;}
Vector-like container for objects derived from cObject.
Definition carray.h:39
Base class for channels.
Definition cchannel.h:47
Buffer for the communications layer of parallel simulation.
Definition ccommbuffer.h:42
cEvent(const cEvent &event)
Definition cevent.h:88
Represents a module gate.
Definition cgate.h:63
cGate * getArrivalGate() const
virtual cMessage * dup() const override
Definition cmessage.h:208
virtual bool hasObject(const char *name)
Definition cmessage.h:435
virtual cObject * removeObject(cObject *par)
Definition cmessage.h:459
cMessage & operator=(const cMessage &msg)
static uint64_t getLiveMessageCount()
Definition cmessage.h:633
void setTimestamp(simtime_t t)
Definition cmessage.h:254
virtual cObject * addObject(cObject *par)
Definition cmessage.h:412
virtual cObject * getTargetObject() const override
void setContextPointer(void *p)
Definition cmessage.h:264
static void resetMessageCounters()
Definition cmessage.h:638
cObject * getControlInfo() const
Definition cmessage.h:308
virtual void setControlInfo(cObject *p)
bool arrivedOn(int gateId) const
Definition cmessage.h:565
bool arrivedOn(const char *gateName, int gateIndex) const
simtime_t_cref getTimestamp() const
Definition cmessage.h:298
virtual cObject * getObject(const char *name)
Definition cmessage.h:424
msgid_t getTreeId() const
Definition cmessage.h:589
virtual cArray & getParList()
Definition cmessage.h:327
virtual void parsimPack(cCommBuffer *buffer) const override
void setArrival(int moduleId, int gateId, simtime_t_cref t)
Definition cmessage.h:613
simtime_t_cref getArrivalTime() const
Definition cmessage.h:560
virtual cObject * removeObject(const char *name)
Definition cmessage.h:447
cMessage(const char *name=nullptr, short kind=0)
virtual cMsgPar & par(const char *name)
cModule * getSenderModule() const
Definition cmessage.h:475
virtual cMsgPar & addPar(cMsgPar *par)
Definition cmessage.h:350
cMessage(const cMessage &msg)
virtual bool hasPar(const char *name) const
Definition cmessage.h:401
virtual bool isMessage() const override
Definition cmessage.h:154
cGate * getSenderGate() const
virtual const char * getDisplayString() const
virtual void parsimUnpack(cCommBuffer *buffer) override
int getArrivalModuleId() const
Definition cmessage.h:521
simtime_t_cref getCreationTime() const
Definition cmessage.h:537
void setTimestamp()
Definition cmessage.h:249
cObject * removeControlInfo()
int getSenderGateId() const
Definition cmessage.h:513
bool arrivedOn(const char *gateName) const
void setKind(short k)
Definition cmessage.h:244
virtual cMsgPar & addPar(const char *name)
Definition cmessage.h:339
virtual bool isStale() override
cModule * getArrivalModule() const
Definition cmessage.h:489
virtual void forEachChild(cVisitor *v) override
static uint64_t getTotalMessageCount()
Definition cmessage.h:624
int getArrivalGateId() const
Definition cmessage.h:530
virtual void execute() override
virtual std::string str() const override
virtual int findPar(const char *name) const
msgid_t getId() const
Definition cmessage.h:583
short getKind() const
Definition cmessage.h:293
bool isSelfMessage() const
Definition cmessage.h:468
virtual cMsgPar & par(int index)
virtual bool isPacket() const override
Definition cmessage.h:197
simtime_t_cref getSendingTime() const
Definition cmessage.h:543
int getSenderModuleId() const
Definition cmessage.h:504
void * getContextPointer() const
Definition cmessage.h:303
void setArrival(int moduleId, int gateId)
Definition cmessage.h:607
This class represents modules in the simulation.
Definition cmodule.h:49
Allows a value (string, bool, double, etc) to be attached to a cMessage object.
Definition cmsgpar.h:53
cObject is a lightweight class which serves as the root of the OMNeT++ class hierarchy....
Definition cobject.h:93
Base class for all simple module classes.
Definition csimplemodule.h:203
Simulation manager class.
Definition csimulation.h:66
Enables traversing the tree of (cObject-rooted) simulation objects.
Definition cvisitor.h:57
cSimulation * getSimulation()
Returns the currently active simulation, or nullptr if there is none.
Definition csimulation.h:623
int64_t msgid_t
Message ID. See cMessage::getId().
Definition simkerneldefs.h:85
SimTime simtime_t
Represents simulation time.
Definition simtime_t.h:40
const simtime_t & simtime_t_cref
Constant reference to a simtime_t.
Definition simtime_t.h:48