Main Page | Modules | Class Hierarchy | Class List | File List | Class Members | Related Pages

ccommbuffer.h

00001 //=========================================================================
00002 //  CCOMMBUFFER.H - part of
00003 //
00004 //                  OMNeT++/OMNEST
00005 //           Discrete System Simulation in C++
00006 //
00007 //   Written by:  Andras Varga & David Wu, 2003
00008 //
00009 //=========================================================================
00010 
00011 /*--------------------------------------------------------------*
00012   Copyright (C) 2003-2005 Andras Varga & David Wu
00013   Monash University, Dept. of Electrical and Computer Systems Eng.
00014   Melbourne, Australia
00015 
00016   This file is distributed WITHOUT ANY WARRANTY. See the file
00017   `license' for details on this and other legal matters.
00018 *--------------------------------------------------------------*/
00019 
00020 #ifndef __CCOMMBUFFER_H__
00021 #define __CCOMMBUFFER_H__
00022 
00023 #include "cpolymorphic.h"
00024 
00025 // forward declaration:
00026 class cCommBuffer;
00027 class cObject;
00028 class opp_string;
00029 
00035 SIM_API bool notNull(void *ptr, cCommBuffer *buffer);
00036 
00041 SIM_API bool checkFlag(cCommBuffer *buffer);
00042 
00046 SIM_API void packObject(cObject *obj, cCommBuffer *buffer);
00047 
00051 SIM_API cObject *unpackObject(cCommBuffer *buffer);
00052 
00053 
00066 class SIM_API cCommBuffer : public cPolymorphic
00067 {
00068   public:
00072     virtual ~cCommBuffer() {}
00073 
00081     virtual bool isBufferEmpty() = 0;
00082 
00088     virtual void assertBufferEmpty() = 0;
00090 
00096     virtual void pack(char d) = 0;
00100     virtual void pack(unsigned char d) = 0;
00104     virtual void pack(bool d) = 0;
00108     virtual void pack(short d) = 0;
00112     virtual void pack(unsigned short d) = 0;
00116     virtual void pack(int d) = 0;
00120     virtual void pack(unsigned int d) = 0;
00124     virtual void pack(long d) = 0;
00128     virtual void pack(unsigned long d) = 0;
00132     virtual void pack(float d) = 0;
00136     virtual void pack(double d) = 0;
00140     virtual void pack(long double d) = 0;
00144     void pack(char *d)  {pack((const char *)d);}
00148     virtual void pack(const char *d) = 0;
00152     virtual void pack(opp_string& d) = 0;
00154 
00160     virtual void pack(const char *d,  int size) = 0;
00164     virtual void pack(unsigned char *d,  int size) = 0;
00168     virtual void pack(bool *d, int size) = 0;
00172     virtual void pack(short *d, int size) = 0;
00176     virtual void pack(unsigned short *d, int size) = 0;
00180     virtual void pack(int *d, int size) = 0;
00184     virtual void pack(unsigned int *d, int size) = 0;
00188     virtual void pack(long *d, int size) = 0;
00192     virtual void pack(unsigned long *d, int size) = 0;
00196     virtual void pack(float *d, int size) = 0;
00200     virtual void pack(double *d, int size) = 0;
00204     virtual void pack(long double *d, int size) = 0;
00208     void pack(char **d, int size)  {pack((const char **)d,size);}
00212     virtual void pack(const char **d, int size) = 0;
00216     virtual void pack(opp_string *d, int size) = 0;
00218 
00224     virtual void unpack(char& d) = 0;
00228     virtual void unpack(unsigned char& d) = 0;
00232     virtual void unpack(bool& d) = 0;
00236     virtual void unpack(short& d) = 0;
00240     virtual void unpack(unsigned short& d) = 0;
00244     virtual void unpack(int& d) = 0;
00248     virtual void unpack(unsigned int& d) = 0;
00252     virtual void unpack(long& d) = 0;
00256     virtual void unpack(unsigned long& d) = 0;
00260     virtual void unpack(float& d) = 0;
00264     virtual void unpack(double& d) = 0;
00268     virtual void unpack(long double& d) = 0;
00272     void unpack(char *&d)  {unpack((const char *&)d);}
00276     virtual void unpack(const char *&d) = 0;
00280     virtual void unpack(opp_string& d) = 0;
00282 
00288     virtual void unpack(char *d, int size) = 0;
00292     virtual void unpack(unsigned char *d, int size) = 0;
00296     virtual void unpack(bool *d, int size) = 0;
00300     virtual void unpack(short *d, int size) = 0;
00304     virtual void unpack(unsigned short *d, int size) = 0;
00308     virtual void unpack(int *d, int size) = 0;
00312     virtual void unpack(unsigned int *d, int size) = 0;
00316     virtual void unpack(long *d, int size) = 0;
00320     virtual void unpack(unsigned long *d, int size) = 0;
00324     virtual void unpack(float *d, int size) = 0;
00328     virtual void unpack(double *d, int size) = 0;
00332     virtual void unpack(long double *d, int size) = 0;
00336     void unpack(char **d, int size)  {unpack((const char **)d,size);}
00340     virtual void unpack(const char **d, int size) = 0;
00344     virtual void unpack(opp_string *d, int size) = 0;
00346 };
00347 
00348 #endif
00349 

Generated on Fri Apr 1 12:25:32 2005 for OMNeT++/OMNEST Simulation Library by  doxygen 1.3.9.1