00001 00052 #define _EXPORT_CCL_ 00053 00054 #include "CigiCollDetVolRespV3.h" 00055 #include "CigiSwapping.h" 00056 #include "CigiExceptions.h" 00057 00058 00059 // ==================================================================== 00060 // Construction/Destruction 00061 // ==================================================================== 00062 00063 00064 // ================================================ 00065 // CigiCollDetVolRespV3 00066 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 00067 CigiCollDetVolRespV3::CigiCollDetVolRespV3() 00068 { 00069 00070 PacketID = CIGI_COLL_DET_VOL_RESP_PACKET_ID_V3; 00071 PacketSize = CIGI_COLL_DET_VOL_RESP_PACKET_SIZE_V3; 00072 Version = 3; 00073 MinorVersion = 0; 00074 00075 EntityID = 0; 00076 VolID = 0; 00077 CollType = NonEntity; 00078 CollEntityID = 0; 00079 CollVolID = 0; 00080 00081 } 00082 00083 // ================================================ 00084 // ~CigiCollDetVolRespV3 00085 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 00086 CigiCollDetVolRespV3::~CigiCollDetVolRespV3() 00087 { 00088 00089 } 00090 00091 // ==================================================================== 00092 // Pack and Unpack 00093 // ==================================================================== 00094 00095 // ================================================ 00096 // Pack 00097 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 00098 int CigiCollDetVolRespV3::Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const 00099 { 00100 PackPointer CDta; 00101 00102 CigiBaseCollDetVolResp * Data = ( CigiBaseCollDetVolResp *)Base; 00103 00104 CDta.c = Buff; 00105 00106 *CDta.c++ = PacketID; 00107 *CDta.c++ = PacketSize; 00108 00109 *CDta.s++ = Data->EntityID; 00110 *CDta.c++ = Data->VolID; 00111 *CDta.c++ = (Cigi_uint8)(Data->CollType & 0x01); 00112 *CDta.s++ = Data->CollEntityID; 00113 *CDta.c++ = Data->CollVolID; 00114 *CDta.c++ = 0; 00115 *CDta.s++ = 0; 00116 *CDta.l++ = 0; 00117 00118 return(PacketSize); 00119 00120 } 00121 00122 // ================================================ 00123 // Unpack 00124 // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 00125 int CigiCollDetVolRespV3::Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) 00126 { 00127 PackPointer CDta; 00128 00129 CDta.c = Buff; 00130 00131 CDta.c += 2; // Step over packet id and size 00132 00133 if(!Swap) 00134 { 00135 EntityID = *CDta.s++; 00136 VolID = *CDta.c++; 00137 CollType = (CollTypeGrp)(*CDta.c++ & 0x01); 00138 CollEntityID = *CDta.s++; 00139 CollVolID = *CDta.c++; 00140 } 00141 else 00142 { 00143 CigiSwap2(&EntityID, CDta.s++); 00144 VolID = *CDta.c++; 00145 CollType = (CollTypeGrp)(*CDta.c++ & 0x01); 00146 CigiSwap2(&CollEntityID, CDta.s++); 00147 CollVolID = *CDta.c++; 00148 } 00149 00150 return(PacketSize); 00151 00152 } 00153 00154 00155 00156 // ==================================================================== 00157 // Accessors 00158 // ==================================================================== 00159 00160