![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: createMsg.h,v $ $Revision: 1.28 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtCreateMsg_H_ 00013 #define DtCreateMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netCreateMsg.h" 00017 #include <vlutil/vlString.h> 00018 #include <vlutil/vlFedTarget.h> 00019 00020 class DtConnectionMgr; 00021 class DtCreateMsg; 00022 typedef void (*DtCreateCb)(const DtCreateMsg& inter, void* usr); 00023 00024 class DT_DLL_LRC DtCreateMsg : public DtRtiMsg 00025 { 00026 public: 00027 00029 DtCreateMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00030 00031 DtCreateMsg( 00032 unsigned long ID, 00033 const MAKRti::DtString& fedExNameVal, 00034 const std::vector<unsigned int> & moduleCrcs, 00035 MAKRti::DtFomType fedType, 00036 const std::vector<MAKRti::DtString>& moduleNames, 00037 const MAKRti::DtString& momModule, 00038 const MAKRti::DtString& timeImplNameVal = MAKRti::DtString::nullString(), 00039 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00040 00042 DtCreateMsg(const DtNetCreateMsg* netRepMsg, 00043 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00044 00046 virtual ~DtCreateMsg(); 00047 00049 virtual DtRtiMsg* clone(bool copy = true) const; 00050 00052 virtual void set( 00053 unsigned long ID, 00054 unsigned int momModuleCrc, 00055 const MAKRti::DtString& fedExNameVal, 00056 const std::vector<unsigned int> & moduleCrcs, 00057 MAKRti::DtFomType fedType, 00058 const std::vector<MAKRti::DtString>& moduleNames, 00059 const MAKRti::DtString& momModule, 00060 const MAKRti::DtString& timeImplNameVal ); 00061 00063 void setSourceID( const unsigned long ID ); 00064 unsigned long sourceID() const; 00065 00067 void setMomModuleCrc( unsigned int theMomModuleCrc ); 00068 unsigned int momModuleCrc() const; 00069 00071 virtual void setFullFedExName(const MAKRti::DtString& name); 00072 virtual const MAKRti::DtString fullFedExName() const; 00073 00075 virtual void setTimeImplName(const MAKRti::DtString& name); 00076 virtual MAKRti::DtString timeImplName() const; 00077 00079 virtual void setFomModuleNames(const std::vector< MAKRti::DtString>& moduleNames); 00080 virtual void getFomModuleNames(std::vector<MAKRti::DtString>& modules) const; 00081 00083 virtual void setFedFileType(MAKRti::DtFomType fedType); 00084 virtual MAKRti::DtFomType fedFileType() const; 00085 00087 virtual bool hasMOMModule(); 00088 00090 virtual void setMOMModuleName( const MAKRti::DtString& name ); 00091 virtual MAKRti::DtString MOMmoduleName() const; 00092 00094 virtual void setCrcsOfFedFiles( const std::vector<unsigned int> & moduleCrcs ); 00095 virtual void getCRCsOfFedFiles(std::vector<unsigned int>& crcOfFedFiles) const; 00096 00098 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00099 00100 public: 00101 00103 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00104 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00105 00107 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00108 00110 static void addCallback(DtConnectionMgr* conn, 00111 DtCreateCb cb, void* usr); 00112 static void removeCallback(DtConnectionMgr* conn, 00113 DtCreateCb cb, void* usr); 00114 00115 protected: 00116 00118 virtual DtNetCreateMsg* netCreateMsg(); 00119 virtual const DtNetCreateMsg* netCreateMsg() const; 00120 00122 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00123 00125 virtual int minSize() const; 00126 00130 virtual int setMinSizes(const MAKRti::DtString& fedExNameVal, 00131 const MAKRti::DtString& timeImplNameVal, 00132 const MAKRti::DtString& momModuleNameVal, 00133 const std::vector<MAKRti::DtString>& fomModuleNamesVal, 00134 const std::vector<unsigned int> & moduleCrcs); 00135 00137 virtual void setFedExNameSize( unsigned long size ); 00138 virtual unsigned long fedExNameSize() const; 00139 00141 virtual void setTimeImplNameSize( unsigned long size ); 00142 virtual unsigned long timeImplNameSize() const; 00143 00145 virtual void setFomModuleNameSize( unsigned long size ); 00146 virtual unsigned long fomModuleNameSize() const; 00147 00148 virtual void setSizeOfMOMModuleName( unsigned long size ); 00149 virtual unsigned long sizeOfMOMModuleName() const; 00150 00151 virtual void setNumOfCrcs(unsigned int theNumOfCrcs); 00152 virtual unsigned long numOfCrcs() const; 00153 00155 virtual const char* fedExNamePtr() const; 00156 virtual const char* timeImplNamePtr() const; 00157 virtual const char* fomModuleNamesPtr() const; 00158 virtual const char* momModuleNamePtr() const; 00159 virtual const DtNetU32* crcsOfFomModulesPtr() const; 00160 00162 virtual char* fedExNamePtr(); 00163 virtual char* timeImplNamePtr(); 00164 virtual char* fomModuleNamesPtr(); 00165 virtual char* momModuleNamePtr(); 00166 virtual DtNetU32* crcsOfFomModulesPtr(); 00167 00169 virtual DtCreateMsg* self() const; 00170 }; 00171 00172 00173 inline DtCreateMsg* DtCreateMsg::self() const 00174 { 00175 return const_cast<DtCreateMsg*>( this ); 00176 } 00177 00178 #endif 00179