%description: Check static array of cOwnedObject-based class as message member %file: test.msg namespace @TESTNAME@; message MyMessage { omnetpp::cQueue q[3]; char c; }; %includes: #include "test_m.h" %activity: #define PRINT(X) EV << #X << ":" << X << endl #define PRINTOBJ(X) EV << #X << ":" << X.getClassName() << ":" << X.getName() << ":" \ << (X.getOwner()==&x ? "owned" : "not owned") << ":" \ << X.getLength() << endl; MyMessage x; // access x.getQForUpdate(0).setName("q0"); x.getQForUpdate(0).insert(new cMessage()); x.getQForUpdate(1).setName("q1"); x.getQForUpdate(2).setName("q2"); x.getQForUpdate(2).insert(new cMessage()); x.getQForUpdate(2).insert(new cMessage()); PRINTOBJ(x.getQ(0)); PRINTOBJ(x.getQ(1)); PRINTOBJ(x.getQ(2)); x.setC('x'); PRINT(x.getC()); EV << "-" << endl; // assignment (doesn't copy object name, but contents must be transferred) x.setQ(0,x.getQ(2)); PRINTOBJ(x.getQ(0)); PRINTOBJ(x.getQ(1)); PRINTOBJ(x.getQ(2)); %subst: /omnetpp::// %contains: stdout x.getQ(0):cQueue:q0:owned:1 x.getQ(1):cQueue:q1:owned:0 x.getQ(2):cQueue:q2:owned:2 x.getC():x - x.getQ(0):cQueue:q0:owned:2 x.getQ(1):cQueue:q1:owned:0 x.getQ(2):cQueue:q2:owned:2