00001 00039 #if !defined(_CIGI_BASE_SYMBOL_CLONE_INCLUDED_) 00040 #define _CIGI_BASE_SYMBOL_CLONE_INCLUDED_ 00041 00042 00043 #include "CigiBasePacket.h" 00044 00045 // ==================================================================== 00046 // preprocessor definitions 00047 // ==================================================================== 00048 00049 #define CIGI_SYMBOL_CLONE_PACKET_ID_V3_3 33 00050 #define CIGI_SYMBOL_CLONE_PACKET_SIZE_V3_3 8 00051 00052 00053 class CigiSymbolCloneV3_3; 00054 00055 00056 //========================================================= 00059 class CIGI_SPEC CigiBaseSymbolClone : 00060 public CigiBasePacket 00061 { 00062 00063 friend class CigiSymbolCloneV3_3; 00064 00065 public: 00066 00067 00068 //========================================================= 00072 enum SymbolSourceGrp 00073 { 00074 SymbolSrc=0, 00075 SymbolTemplateSrc=1 00076 }; 00077 00078 00079 00080 //==> Management 00081 00082 //========================================================= 00085 CigiBaseSymbolClone(void); 00086 00087 //========================================================= 00090 virtual ~CigiBaseSymbolClone(void); 00091 00092 00093 //==> Buffer Packing/Unpacking 00094 00095 //========================================================= 00106 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0; 00107 00108 //========================================================= 00118 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0; 00119 00120 //========================================================= 00132 virtual int GetCnvt(CigiVersionID &CnvtVersion, 00133 CigiCnvtInfoType::Type &CnvtInfo); 00134 00135 00136 00137 //==> Accessing Member Variable Values functions 00138 00139 //+> SymbolID 00140 00141 //========================================================= 00148 int SetSymbolID(const Cigi_uint16 SymbolIDIn, bool bndchk=true) 00149 { 00150 SymbolID = SymbolIDIn; 00151 return(CIGI_SUCCESS); 00152 } 00153 00154 //========================================================= 00158 Cigi_uint16 GetSymbolID(void) const { return(SymbolID); } 00159 00160 00161 //+> SourceType 00162 00163 //========================================================= 00172 int SetSourceType(const SymbolSourceGrp SourceTypeIn, bool bndchk=true); 00173 00174 //========================================================= 00178 SymbolSourceGrp GetSourceType(void) const { return(SourceType); } 00179 00180 00181 //+> SourceID 00182 00183 //========================================================= 00191 int SetSourceID(const Cigi_uint16 SourceIDIn, bool bndchk=true) 00192 { 00193 SourceID = SourceIDIn; 00194 return(CIGI_SUCCESS); 00195 } 00196 00197 //========================================================= 00202 Cigi_uint16 GetSourceID(void) const { return(SourceID); } 00203 00204 00205 00206 protected: 00207 00208 //==> Member variables 00209 00210 //========================================================= 00214 Cigi_uint16 SymbolID; 00215 00216 //========================================================= 00223 SymbolSourceGrp SourceType; 00224 00225 //========================================================= 00229 Cigi_uint16 SourceID; 00230 00231 00232 }; 00233 00234 00235 00236 #endif // #if !defined(_CIGI_BASE_SYMBOL_CLONE_INCLUDED_) 00237