#include <OverSimMessage.h>
Public Member Functions | |
OverSimMessage (const char *name=NULL, int kind=0) | |
OverSimMessage (const OverSimMessage &other) | |
OverSimMessage & | operator= (const OverSimMessage &other) |
virtual OverSimMessage * | dup () const |
virtual void | parsimPack (cCommBuffer *b) |
virtual void | parsimUnpack (cCommBuffer *b) |
Definition at line 21 of file OverSimMessage.h.
OverSimMessage::OverSimMessage | ( | const char * | name = NULL , |
|
int | kind = 0 | |||
) | [inline] |
Definition at line 24 of file OverSimMessage.h.
Referenced by dup().
OverSimMessage::OverSimMessage | ( | const OverSimMessage & | other | ) | [inline] |
Definition at line 25 of file OverSimMessage.h.
00025 : OverSimMessage_Base(other.getName()) {operator=(other);}
virtual OverSimMessage* OverSimMessage::dup | ( | ) | const [inline, virtual] |
Definition at line 27 of file OverSimMessage.h.
00027 {return new OverSimMessage(*this);}
OverSimMessage& OverSimMessage::operator= | ( | const OverSimMessage & | other | ) | [inline] |
Definition at line 26 of file OverSimMessage.h.
Referenced by OverSimMessage().
00026 {OverSimMessage_Base::operator=(other); return *this;}
void OverSimMessage::parsimPack | ( | cCommBuffer * | b | ) | [virtual] |
Definition at line 26 of file OverSimMessage.cc.
00027 { 00028 cObject::parsimPack(b); 00029 00030 if (getContextPointer() || getControlInfo()) 00031 throw cRuntimeError(this, "netPack(): cannot pack object with " 00032 "contextPointer or controlInfo set"); 00033 if (getParList().size() > 0) { 00034 b->packFlag(true); 00035 b->packObject(&getParList()); 00036 } else { 00037 b->packFlag(false); 00038 } 00039 00040 if (b->packFlag(getEncapsulatedPacket() != NULL)) 00041 b->packObject(getEncapsulatedPacket()); 00042 }
void OverSimMessage::parsimUnpack | ( | cCommBuffer * | b | ) | [virtual] |
Definition at line 44 of file OverSimMessage.cc.
00045 { 00046 int len = 0; 00047 cNetCommBuffer *netBuffer = dynamic_cast<cNetCommBuffer*>(b); 00048 if (netBuffer != NULL) { 00049 len = netBuffer->getRemainingMessageSize(); 00050 } 00051 cObject::parsimUnpack(b); 00052 00053 ASSERT(getShareCount() == 0); 00054 00055 if (b->checkFlag()) { 00056 cArray *parlistptr = static_cast<cArray*>(b->unpackObject()); 00057 std::cout << "still there: " << *parlistptr << std::endl; 00058 for (int i=0; i<parlistptr->size(); i++) { 00059 std::cout << "i: " << i << " " << parlistptr->get(i) << std::endl; 00060 addObject(static_cast<cObject*>(parlistptr->get(i)->dup())); 00061 } 00062 delete parlistptr; 00063 } 00064 00065 if (b->checkFlag()) { 00066 encapsulate((cPacket *) b->unpackObject()); 00067 } 00068 00069 // set the length of the received message 00070 // TODO: doesn't contain the length of the string for the object type 00071 setByteLength(len); 00072 }