![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: signalMessageHeader.h,v $ $Revision: 1.2 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00014 00015 00016 #ifndef DtSignalMessageHeader_H_ 00017 #define DtSignalMessageHeader_H_ 00018 00019 #include <vlpi/NetStructs.h> 00020 #include <vlpi/simulationAddress.h> 00021 #include "vrfmsgs/splitMsgHandle.h" 00022 00026 struct DtNetSignalMessageHeader 00027 { 00028 DtNetU32 myUsingVrfVersionPrefixA; 00029 DtNetU16 myUsingVrfVersionPrefixB; 00030 DtNetU32 myVrfMessageVersion; 00031 DtNetFederateId myMessageSimulatorId; 00032 DtNetU16 myMessageNumber; 00033 DtNetU32 myFullMessageSize; 00034 DtNetU16 mySequenceId; 00035 DtNetU16 myNumberOfChunks; 00036 DtNetU32 mySizeOfThisChunk; 00037 DtNetU32 padding2; 00038 00039 }; 00040 00045 00046 #include "vrfmsgs/vrfmsgsDefines.h" 00047 class DT_DLL_vrfmsgs DtSignalMessageHeader 00048 { 00049 public: 00050 00052 DtSignalMessageHeader(); 00053 00055 DtSignalMessageHeader(const DtSignalMessageHeader & orig); 00056 00058 virtual ~DtSignalMessageHeader(); 00059 00061 const DtSignalMessageHeader & operator=(DtSignalMessageHeader & orig); 00062 00063 public: 00064 00066 virtual DtSignalMessageHeader * clone() const; 00067 00070 virtual unsigned fullMessageSize() const; 00071 virtual void setFullMessageSize(unsigned nSize); 00073 00076 virtual unsigned messageIdNumber() const; 00077 virtual void setMessageIdNumber(unsigned sNum); 00079 00082 virtual const DtSimulationAddress& messageIdSenderAddress() const; 00083 virtual void setMessageIdSenderAddress(const DtSimulationAddress& simAddr); 00085 00087 virtual int netRepSize() const; 00088 00091 virtual unsigned numberOfChunks() const; 00092 virtual void setNumberOfChunks(unsigned nNum); 00094 00096 virtual bool setFromNet(const char* networkBuffer, 00097 unsigned contentSize); 00098 00104 virtual bool setToNet(char* networkBuffer) const; 00105 00108 virtual unsigned sequenceId() const; 00109 virtual void setSequenceId(unsigned sSeqId); 00111 00114 virtual unsigned sizeOfThisChunk() const; 00115 virtual void setSizeOfThisChunk(unsigned nSize); 00117 00118 virtual void printDataToString(DtString& str); 00119 00121 public: 00122 00125 DtU32 vrfMessageVersion() const; 00126 void setVrfMessageVersion (DtU32 msgver); 00128 00129 protected: 00130 unsigned myFullMessageSize; 00131 unsigned myMessageNumber; 00132 DtSimulationAddress myMessageSimulatorId; 00133 unsigned myNumberOfChunks; 00134 unsigned mySequenceId; 00135 unsigned mySizeOfThisChunk; 00136 00138 DtU32 myVrfMessageVersionSupported; 00139 00140 }; 00141 00142 inline unsigned DtSignalMessageHeader::fullMessageSize() const 00143 { 00144 return (myFullMessageSize); 00145 } 00146 00147 inline void DtSignalMessageHeader::setFullMessageSize(unsigned nSize) 00148 { 00149 myFullMessageSize = nSize; 00150 } 00151 00152 inline unsigned DtSignalMessageHeader::messageIdNumber() const 00153 { 00154 return (myMessageNumber); 00155 } 00156 00157 inline void DtSignalMessageHeader::setMessageIdNumber(unsigned sNum) 00158 { 00159 myMessageNumber = sNum; 00160 } 00161 00162 inline const DtSimulationAddress& DtSignalMessageHeader::messageIdSenderAddress() const 00163 { 00164 return (myMessageSimulatorId); 00165 } 00166 00167 inline void DtSignalMessageHeader::setMessageIdSenderAddress(const DtSimulationAddress& simAddr) 00168 { 00169 myMessageSimulatorId = simAddr; 00170 } 00171 00172 inline unsigned DtSignalMessageHeader::numberOfChunks() const 00173 { 00174 return (myNumberOfChunks); 00175 } 00176 00177 inline void DtSignalMessageHeader::setNumberOfChunks(unsigned nNum) 00178 { 00179 myNumberOfChunks = nNum; 00180 } 00181 00182 inline unsigned DtSignalMessageHeader::sequenceId() const 00183 { 00184 return (mySequenceId); 00185 } 00186 00187 inline void DtSignalMessageHeader::setSequenceId(unsigned sSeqId) 00188 { 00189 mySequenceId = sSeqId; 00190 } 00191 00192 inline unsigned DtSignalMessageHeader::sizeOfThisChunk() const 00193 { 00194 return (mySizeOfThisChunk); 00195 } 00196 00197 inline void DtSignalMessageHeader::setSizeOfThisChunk(unsigned nSize) 00198 { 00199 mySizeOfThisChunk = nSize; 00200 } 00201 00202 inline DtU32 DtSignalMessageHeader::vrfMessageVersion() const 00203 { 00204 return (myVrfMessageVersionSupported); 00205 } 00206 00207 inline void DtSignalMessageHeader::setVrfMessageVersion(DtU32 msgver) 00208 { 00209 myVrfMessageVersionSupported = msgver; 00210 } 00211 00212 namespace DtBufferSerialize 00213 { 00216 DT_DLL_vrfmsgs int getSize(const DtSignalMessageHeader* const& messagePtr); 00217 00222 DT_DLL_vrfmsgs char *encode(const DtSignalMessageHeader* const& messagePtr, char *buffer); 00223 00231 DT_DLL_vrfmsgs const char *decode(DtSignalMessageHeader*& messagePtr, const char *buffer); 00232 } 00233 00234 #endif 00235 00236