![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2003 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: msgRetractHandleImpl.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef msgRetractHandleImplementation_H_ 00013 #define msgRetractHandleImplementation_H_ 00014 00015 #ifdef DtIFSPEC1516 00016 00017 #include "rtiMsConfig.h" 00018 #include <RTI/VariableLengthData.h> 00019 #include <string> 00020 #include <sstream> 00021 #include "internalTypes.h" 00022 00023 namespace rti1516 00024 { 00025 00026 class MessageRetractionHandleImplementation 00027 { 00028 public: 00030 MessageRetractionHandleImplementation(); 00031 MessageRetractionHandleImplementation( 00032 DtMessageRetractionHandle retractHandle); 00033 MessageRetractionHandleImplementation( 00034 unsigned long fedHandleValue, 00035 unsigned long serialValue); 00036 MessageRetractionHandleImplementation( 00037 MessageRetractionHandleImplementation const & rhs); 00038 00040 MessageRetractionHandleImplementation & operator=( 00041 MessageRetractionHandleImplementation const & rhs); 00042 00043 bool isValid() const; 00044 00046 bool operator==(MessageRetractionHandleImplementation const & rhs) const; 00047 bool operator!=(MessageRetractionHandleImplementation const & rhs) const; 00048 bool operator< (MessageRetractionHandleImplementation const & rhs) const; 00049 00052 rti1516::VariableLengthData encode() const; 00054 unsigned long encode(void* buffer, unsigned long bufferSize) const; 00055 unsigned long encodedLength() const; 00056 00058 void decode( 00059 rti1516::VariableLengthData const & encodedHandle); 00060 00062 void decode(void* buffer, unsigned long bufferSize); 00063 00065 std::wstring toString() const; 00066 00068 void setValue(DtMessageRetractionHandle retractHandle); 00069 DtMessageRetractionHandle const & value() const; 00070 00072 void setFederateHandle(unsigned long fedHandleValue); 00073 unsigned long federateHandle() const; 00074 00076 void setSerialNumber(unsigned long serialValue); 00077 unsigned long serialNumber() const; 00078 00079 protected: 00080 DtMessageRetractionHandle myRetractHandle; 00081 }; 00082 00083 inline 00084 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation() 00085 { 00087 myRetractHandle.sendingFederate = 0; 00088 myRetractHandle.serialNumber = 0; 00089 } 00090 inline 00091 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation( 00092 unsigned long fedHandleValue, 00093 unsigned long serialValue) 00094 { 00095 myRetractHandle.sendingFederate = fedHandleValue; 00096 myRetractHandle.serialNumber = serialValue; 00097 } 00098 inline 00099 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation( 00100 DtMessageRetractionHandle retractHandle) 00101 { 00102 myRetractHandle.sendingFederate = retractHandle.sendingFederate; 00103 myRetractHandle.serialNumber = retractHandle.serialNumber; 00104 } 00105 inline 00106 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation( 00107 MessageRetractionHandleImplementation const & rhs) 00108 { 00109 myRetractHandle.sendingFederate = rhs.myRetractHandle.sendingFederate; 00110 myRetractHandle.serialNumber = rhs.myRetractHandle.serialNumber; 00111 } 00112 inline 00113 MessageRetractionHandleImplementation & 00114 MessageRetractionHandleImplementation::operator=( 00115 MessageRetractionHandleImplementation const & rhs) 00116 { 00117 if (this == &rhs) 00118 return *this; 00119 myRetractHandle.sendingFederate = rhs.myRetractHandle.sendingFederate; 00120 myRetractHandle.serialNumber = rhs.myRetractHandle.serialNumber; 00121 return *this; 00122 }; 00123 00124 inline bool MessageRetractionHandleImplementation::isValid() const 00125 { 00127 return myRetractHandle.sendingFederate != 0; 00128 } 00129 00130 inline bool MessageRetractionHandleImplementation::operator==( 00131 MessageRetractionHandleImplementation const & rhs) const 00132 { 00133 return 00134 myRetractHandle.sendingFederate == rhs.myRetractHandle.sendingFederate 00135 && myRetractHandle.serialNumber == rhs.myRetractHandle.serialNumber; 00136 }; 00137 inline bool MessageRetractionHandleImplementation::operator!=( 00138 MessageRetractionHandleImplementation const & rhs) const 00139 { 00140 return 00141 myRetractHandle.sendingFederate != rhs.myRetractHandle.sendingFederate 00142 || myRetractHandle.serialNumber != rhs.myRetractHandle.serialNumber; 00143 }; 00144 inline bool MessageRetractionHandleImplementation::operator< ( 00145 MessageRetractionHandleImplementation const & rhs) const 00146 { 00147 return 00148 myRetractHandle.sendingFederate < rhs.myRetractHandle.sendingFederate 00149 || 00150 (myRetractHandle.sendingFederate == rhs.myRetractHandle.sendingFederate 00151 && myRetractHandle.serialNumber < rhs.myRetractHandle.serialNumber); 00152 }; 00153 00154 inline rti1516::VariableLengthData 00155 MessageRetractionHandleImplementation::encode() const 00156 { 00157 DtNetMessageRetractionHandle netHandle; 00158 netHandle.sendingFederate = myRetractHandle.sendingFederate; 00159 netHandle.serialNumber = myRetractHandle.serialNumber; 00160 return rti1516::VariableLengthData(&netHandle, sizeof(netHandle)); 00161 }; 00162 00163 inline unsigned long MessageRetractionHandleImplementation::encode( 00164 void* buffer, unsigned long bufferSize) const 00165 { 00166 DtNetMessageRetractionHandle netHandle; 00167 if (bufferSize < sizeof(netHandle)) 00168 return 0; 00169 netHandle.sendingFederate = myRetractHandle.sendingFederate; 00170 netHandle.serialNumber = myRetractHandle.serialNumber; 00171 memcpy(buffer, &netHandle, sizeof(netHandle)); 00172 return sizeof(netHandle); 00173 } 00174 inline unsigned long MessageRetractionHandleImplementation::encodedLength() const 00175 { 00176 return sizeof(DtNetMessageRetractionHandle); 00177 } 00178 00179 inline std::wstring MessageRetractionHandleImplementation::toString() const 00180 { 00181 std::wstringstream ss; 00182 ss << myRetractHandle.sendingFederate << L" " << myRetractHandle.serialNumber; 00183 return ss.str(); 00184 }; 00185 00186 inline void MessageRetractionHandleImplementation::setValue( 00187 DtMessageRetractionHandle retractHandle) 00188 { 00189 myRetractHandle.sendingFederate = retractHandle.sendingFederate; 00190 myRetractHandle.serialNumber = retractHandle.serialNumber; 00191 } 00192 00193 inline DtMessageRetractionHandle const & 00194 MessageRetractionHandleImplementation::value() const 00195 { 00196 return myRetractHandle; 00197 } 00198 00199 inline void MessageRetractionHandleImplementation::setFederateHandle( 00200 unsigned long fedHandleValue) 00201 { 00202 myRetractHandle.sendingFederate = fedHandleValue; 00203 } 00204 inline unsigned long MessageRetractionHandleImplementation::federateHandle() const 00205 { 00206 return myRetractHandle.sendingFederate; 00207 } 00208 00209 inline void MessageRetractionHandleImplementation::setSerialNumber(unsigned long serialValue) 00210 { 00211 myRetractHandle.serialNumber = serialValue; 00212 } 00213 inline unsigned long MessageRetractionHandleImplementation::serialNumber() const 00214 { 00215 return myRetractHandle.serialNumber; 00216 } 00217 inline void MessageRetractionHandleImplementation::decode( 00218 rti1516::VariableLengthData const & encodedHandle) 00219 { 00220 DtNetMessageRetractionHandle* netHandle = 00221 (DtNetMessageRetractionHandle*) encodedHandle.data(); 00222 myRetractHandle.sendingFederate = netHandle->sendingFederate; 00223 myRetractHandle.serialNumber = netHandle->serialNumber; 00224 } 00225 00226 inline void MessageRetractionHandleImplementation::decode( 00227 void* buffer, unsigned long bufferSize) 00228 { 00229 DtNetMessageRetractionHandle* netHandle = 00230 (DtNetMessageRetractionHandle*) buffer; 00231 myRetractHandle.sendingFederate = netHandle->sendingFederate; 00232 myRetractHandle.serialNumber = netHandle->serialNumber; 00233 } 00234 00235 }; 00236 00237 #endif // DtIFSPEC1516 00238 00239 #endif //! msgRetractHandleImplementation_H_