#include <CigiSymbolCloneV3_3.h>
Inheritance diagram for CigiSymbolCloneV3_3:
Public Member Functions | |
CigiSymbolCloneV3_3 (void) | |
virtual | ~CigiSymbolCloneV3_3 (void) |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
Definition at line 50 of file CigiSymbolCloneV3_3.h.
CigiSymbolCloneV3_3::CigiSymbolCloneV3_3 | ( | void | ) |
General Constructor
Definition at line 56 of file CigiSymbolCloneV3_3.cpp.
References CIGI_SYMBOL_CLONE_PACKET_ID_V3_3, CIGI_SYMBOL_CLONE_PACKET_SIZE_V3_3, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSymbolClone::SourceID, CigiBaseSymbolClone::SourceType, CigiBaseSymbolClone::SymbolID, CigiBaseSymbolClone::SymbolSrc, and CigiBasePacket::Version.
00057 { 00058 PacketID = CIGI_SYMBOL_CLONE_PACKET_ID_V3_3; 00059 PacketSize = CIGI_SYMBOL_CLONE_PACKET_SIZE_V3_3; 00060 Version = 3; 00061 MinorVersion = 3; 00062 00063 SymbolID = 0; 00064 SourceType = CigiBaseSymbolClone::SymbolSrc; 00065 SourceID = 0; 00066 00067 }
CigiSymbolCloneV3_3::~CigiSymbolCloneV3_3 | ( | void | ) | [virtual] |
int CigiSymbolCloneV3_3::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
A virtual Pack function.
Base | - A pointer to the instance of the packet to be packed. (Downcast to CigiBasePacket) | |
Buff | - A pointer to the current pack point. | |
Spec | - A pointer to special data. |
Implements CigiBaseSymbolClone.
Definition at line 85 of file CigiSymbolCloneV3_3.cpp.
References PackPointerUnion::c, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSymbolClone::SourceID, CigiBaseSymbolClone::SourceType, CigiBaseSymbolClone::SymbolID, and CigiBaseSymbolClone::SymbolTemplateSrc.
00086 { 00087 PackPointer CDta; 00088 00089 CigiSymbolCloneV3_3 * Data = 00090 ( CigiSymbolCloneV3_3 *)Base; 00091 00092 CDta.c = Buff; 00093 00094 *CDta.c++ = PacketID; 00095 *CDta.c++ = PacketSize; 00096 00097 *CDta.s++ = Data->SymbolID; 00098 00099 if(Data->SourceType == CigiBaseSymbolClone::SymbolTemplateSrc) 00100 *CDta.c++ = 0x01; 00101 else 00102 *CDta.c++ = 0; 00103 00104 *CDta.c++ = 0; 00105 00106 *CDta.s++ = Data->SourceID; 00107 00108 return(PacketSize); 00109 00110 }
int CigiSymbolCloneV3_3::Unpack | ( | Cigi_uint8 * | Buff, | |
bool | Swap, | |||
void * | Spec | |||
) | [virtual] |
A virtual Unpack function.
Buff | - A pointer to the current pack point. | |
Swap | - N/A for V1 & V2 | |
Spec | - A pointer to special data. |
Implements CigiBaseSymbolClone.
Definition at line 115 of file CigiSymbolCloneV3_3.cpp.
References PackPointerUnion::c, CigiSwap2(), CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSymbolClone::SourceID, CigiBaseSymbolClone::SourceType, and CigiBaseSymbolClone::SymbolID.
00116 { 00117 PackPointer CDta; 00118 unsigned char HDta = 0; 00119 00120 CDta.c = Buff; 00121 00122 CDta.c += 2; // Step over packet id and size 00123 00124 if(!Swap) 00125 { 00126 00127 SymbolID = *CDta.s++; 00128 00129 HDta = *CDta.c++; 00130 00131 CDta.c++; 00132 00133 SourceID = *CDta.s++; 00134 00135 } 00136 else 00137 { 00138 00139 CigiSwap2(&SymbolID, CDta.s++); 00140 00141 HDta = *CDta.c++; 00142 00143 CDta.c++; 00144 00145 CigiSwap2(&SourceID, CDta.s++); 00146 00147 } 00148 00149 SourceType = (CigiBaseSymbolClone::SymbolSourceGrp)(HDta & 0x01); 00150 00151 return(PacketSize); 00152 00153 }