00001 00039 #if !defined(_CIGI_BASE_VARIABLE_SIZE_PACKET_INCLUDED_) 00040 #define _CIGI_BASE_VARIABLE_SIZE_PACKET_INCLUDED_ 00041 00042 00043 #include "CigiBasePacket.h" 00044 00045 00046 00047 //========================================================= 00050 class CIGI_SPEC CigiBaseVariableSizePckt : public CigiBasePacket 00051 { 00052 public: 00053 00054 //========================================================= 00057 CigiBaseVariableSizePckt() { }; 00058 00059 //========================================================= 00062 virtual ~CigiBaseVariableSizePckt() { }; 00063 00064 //==> Buffer Packing/Unpacking 00065 00066 //========================================================= 00077 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0; 00078 00079 //========================================================= 00089 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0; 00090 00091 //========================================================= 00099 virtual int GetTruePacketSize(CigiBaseVariableSizePckt &refPacket) =0; 00100 00101 //========================================================= 00106 int GetVariableDataSize(void) { return(VariableDataSize); } 00107 00108 00109 protected: 00110 00111 //========================================================= 00114 int VariableDataSize; 00115 00116 }; 00117 00118 #endif // !defined(_CIGI_BASE_VARIABLE_SIZE_PACKET_INCLUDED_)