CigiBaseIGMsg.h

Go to the documentation of this file.
00001 
00056 #if !defined(_CIGI_BASE_IG_MSG_INCLUDED_)
00057 #define _CIGI_BASE_IG_MSG_INCLUDED_
00058 
00059 #include "CigiBaseVariableSizePckt.h"
00060 
00061 // ====================================================================
00062 // preprocessor definitions
00063 // ====================================================================
00064 
00065 #define CIGI_IG_MSG_PACKET_ID_V2 108
00066 
00067 #define CIGI_IG_MSG_PACKET_ID_V3 117
00068 
00069 
00070 class CigiIGMsgV2;
00071 class CigiIGMsgV3;
00072 
00073 
00074 class CIGI_SPEC CigiBaseIGMsg : public CigiBaseVariableSizePckt
00075 {
00076 
00077 friend class CigiIGMsgV2;
00078 friend class CigiIGMsgV3;
00079 
00080 public:
00081 
00082    //==> Management
00083 
00084    //=========================================================
00087    CigiBaseIGMsg() { };
00088 
00089    //=========================================================
00092    virtual ~CigiBaseIGMsg() { };
00093 
00094 
00095    //==> Buffer Packing/Unpacking
00096 
00097    //=========================================================
00108    virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00109 
00110    //=========================================================
00120    virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00121 
00122    //=========================================================
00134         virtual int GetCnvt(CigiVersionID &CnvtVersion,
00135                        CigiCnvtInfoType::Type &CnvtInfo)   {
00136       CnvtInfo.ProcID = CigiProcessType::ProcStd;
00137 
00138       if(CnvtVersion.CigiMajorVersion < 2)
00139       {
00140          CnvtInfo.ProcID = CigiProcessType::ProcNone;
00141          CnvtInfo.CnvtPacketID = 0;
00142       }
00143       else
00144       {
00145          CnvtInfo.ProcID = CigiProcessType::ProcVarSize;
00146          if(CnvtVersion.CigiMajorVersion < 3)
00147             CnvtInfo.CnvtPacketID = CIGI_IG_MSG_PACKET_ID_V2;
00148          else
00149             CnvtInfo.CnvtPacketID = CIGI_IG_MSG_PACKET_ID_V3;
00150       }
00151 
00152       return(CIGI_SUCCESS);
00153    }
00154 
00155    //=========================================================
00163         virtual int GetTruePacketSize(CigiBaseVariableSizePckt &refPacket) =0;
00164 
00165 
00166 
00167 
00168    //==> Accessing Member Variable Values functions
00169 
00170    //+> MsgID
00171 
00172    //=========================================================
00179    int SetMsgID(const Cigi_uint16 MsgIDIn, bool bndchk=true)
00180    {
00181       MsgID = MsgIDIn;
00182       return(CIGI_SUCCESS);
00183    }
00184 
00185    //=========================================================
00188    Cigi_uint16 GetMsgID(void) const { return(MsgID); }
00189 
00190 
00191    //+> Msg
00192 
00193    //=========================================================
00196    Cigi_int8 *GetMsg(void) { return(Msg); }
00197 
00198 
00199    //+> MsgLen
00200 
00201    //=========================================================
00204    int GetMsgLen(void) const { return(MsgLen); }
00205 
00206 
00207 
00208 protected:
00209 
00210    //==> Member variables
00211 
00212    //=========================================================
00216    Cigi_uint16 MsgID;
00217 
00218    //=========================================================
00222    Cigi_int8 Msg[100];
00223 
00224    //=========================================================
00228    int MsgLen;
00229 
00230 
00231 };
00232 
00233 #endif // #if !defined(_CIGI_BASE_IG_MSG_INCLUDED_)

Generated on Wed Apr 29 08:59:55 2009 for CCL by  doxygen 1.4.7