CigiCollDetVolRespV3.cpp

Go to the documentation of this file.
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 

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