OverSimMessage Class Reference

#include <OverSimMessage.h>

List of all members.

Public Member Functions

 OverSimMessage (const char *name=NULL, int kind=0)
 OverSimMessage (const OverSimMessage &other)
OverSimMessageoperator= (const OverSimMessage &other)
virtual cPolymorphic * dup () const
virtual void netPack (cCommBuffer *b)
virtual void netUnpack (cCommBuffer *b)


Constructor & Destructor Documentation

OverSimMessage::OverSimMessage ( const char *  name = NULL,
int  kind = 0 
) [inline]

Referenced by dup().

00024 : OverSimMessage_Base(name,kind) {}

OverSimMessage::OverSimMessage ( const OverSimMessage other  )  [inline]

00025 : OverSimMessage_Base(other.name()) {operator=(other);}


Member Function Documentation

OverSimMessage& OverSimMessage::operator= ( const OverSimMessage other  )  [inline]

Referenced by OverSimMessage().

00026 {OverSimMessage_Base::operator=(other); return *this;}

virtual cPolymorphic* OverSimMessage::dup (  )  const [inline, virtual]

00027 {return new OverSimMessage(*this);}

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 }


The documentation for this class was generated from the following files:

Generated on Fri Sep 19 13:05:07 2008 for ITM OverSim by  doxygen 1.5.5