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