#include <OverSimMessage.h>
Public Member Functions | |
OverSimMessage (const char *name=NULL, int kind=0) | |
OverSimMessage (const OverSimMessage &other) | |
OverSimMessage & | operator= (const OverSimMessage &other) |
virtual cPolymorphic * | dup () const |
virtual void | netPack (cCommBuffer *b) |
virtual void | netUnpack (cCommBuffer *b) |
OverSimMessage::OverSimMessage | ( | const char * | name = NULL , |
|
int | kind = 0 | |||
) | [inline] |
OverSimMessage::OverSimMessage | ( | const OverSimMessage & | other | ) | [inline] |
OverSimMessage& OverSimMessage::operator= | ( | const OverSimMessage & | other | ) | [inline] |
virtual cPolymorphic* OverSimMessage::dup | ( | ) | const [inline, virtual] |
void OverSimMessage::netPack | ( | cCommBuffer * | b | ) | [virtual] |
00027 { 00028 cObject::netPack(buffer); 00029 00030 if (contextPointer() || controlInfo()) 00031 throw new cRuntimeError(this, "netPack(): cannot pack object with " 00032 "contextPointer or controlInfo set"); 00033 if (parList().items() > 0) { 00034 buffer->packFlag(true); 00035 buffer->packObject(&parList()); 00036 } else { 00037 buffer->packFlag(false); 00038 } 00039 00040 if (buffer->packFlag(encapsulatedMsg() != NULL)) 00041 buffer->packObject(encapsulatedMsg()); 00042 }
void OverSimMessage::netUnpack | ( | cCommBuffer * | b | ) | [virtual] |
00045 { 00046 int len = 0; 00047 00048 cNetCommBuffer *netBuffer = dynamic_cast<cNetCommBuffer*>(buffer); 00049 if (netBuffer != NULL) { 00050 len = netBuffer->getRemainingMessageSize(); 00051 } 00052 00053 cObject::netUnpack(buffer); 00054 00055 ASSERT(shareCount() == 0); 00056 00057 if (buffer->checkFlag()) { 00058 cArray *parlistptr = static_cast<cArray*>(buffer->unpackObject()); 00059 std::cout << "still there: " << *parlistptr << std::endl; 00060 for (int i=0; i<parlistptr->items(); i++) { 00061 std::cout << "i: " << i << " " << parlistptr->get(i) << std::endl; 00062 addObject(static_cast<cObject*>(parlistptr->get(i)->dup())); 00063 } 00064 delete parlistptr; 00065 } 00066 00067 if (buffer->checkFlag()) { 00068 encapsulate((cMessage *) buffer->unpackObject()); 00069 } 00070 00071 // set the length of the received message 00072 // TODO: doesn't contain the length of the string for the object type 00073 setByteLength(len); 00074 }