00001 00059 #if !defined(_CIGI_BASE_PACKET_INCLUDED_) 00060 #define _CIGI_BASE_PACKET_INCLUDED_ 00061 00062 00063 #include "CigiTypes.h" 00064 #include "CigiErrorCodes.h" 00065 #include "CigiCnvtInfoType.h" 00066 #include "CigiVersionID.h" 00067 00068 00069 00070 //========================================================= 00073 class CIGI_SPEC CigiBasePacket 00074 { 00075 public: 00076 00077 //========================================================= 00080 virtual ~CigiBasePacket() { }; 00081 00082 //==> Buffer Packing/Unpacking 00083 00084 //========================================================= 00095 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0; 00096 00097 //========================================================= 00107 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0; 00108 00109 //========================================================= 00123 virtual int GetCnvt(CigiVersionID &CnvtVersion, 00124 CigiCnvtInfoType::Type &CnvtInfo) 00125 { 00126 CnvtInfo.ProcID = CigiProcessType::ProcStd; 00127 CnvtInfo.CnvtPacketID = PacketID; 00128 00129 return(CIGI_SUCCESS); 00130 } 00131 00132 //========================================================= 00136 Cigi_uint8 GetPacketID(void) const { return(PacketID); } 00137 00138 //========================================================= 00142 Cigi_uint8 GetPacketSize(void) const { return(PacketSize); } 00143 00144 //========================================================= 00148 Cigi_uint8 GetVersion(void) const { return(Version); } 00149 00150 //========================================================= 00154 Cigi_uint8 GetMinorVersion(void) const { return(MinorVersion); } 00155 00156 00157 protected: 00158 00159 //========================================================= 00162 Cigi_uint8 PacketID; 00163 00164 //========================================================= 00167 Cigi_uint8 PacketSize; 00168 00169 //========================================================= 00172 Cigi_uint8 Version; 00173 00174 //========================================================= 00177 Cigi_uint8 MinorVersion; 00178 00179 }; 00180 00181 #endif // !defined(_CIGI_BASE_PACKET_INCLUDED_)