VR-Forces 4.0.4 Class Documentation
include/vrfmsgs/signalMessageHeader.h
Go to the documentation of this file.
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 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)