![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /************************************************************************** 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 ***************************************************************************/ 00005 /************************************************************************** 00006 ** $RCSfile: fomModuleRequestMsg.h,v $ $Revision: 1.10 $ $State: Exp $ 00007 ***************************************************************************/ 00008 00011 00012 #ifndef DtFomModuleRequestMsg_H_ 00013 #define DtFomModuleRequestMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netFedFileMsg.h" 00017 #include <vlutil/vlString.h> 00018 #include "netFomModuleRequestMsg.h" 00019 00020 class DtConnectionMgr; 00021 class DtFomModuleRequestMsg; 00022 typedef void (*DtFomModuleReqCb)(const DtFomModuleRequestMsg& inter, void* usr); 00023 00028 class DT_DLL_LRC DtFomModuleRequestMsg : public DtRtiMsg 00029 { 00030 public: 00031 00033 DtFomModuleRequestMsg( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00034 00035 DtFomModuleRequestMsg( 00036 unsigned long ID, 00037 unsigned long destID, 00038 const MAKRti::DtString& fedExNameVal, 00039 std::vector<MAKRti::DtString> const& moduleNames, 00040 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 00043 DtFomModuleRequestMsg( const DtNetFomModuleReqMsg* netRepMsg, 00044 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00045 00047 virtual ~DtFomModuleRequestMsg(); 00048 00050 DtRtiMsg* clone(bool copy = true) const; 00051 00052 virtual void set( 00053 unsigned long ID, 00054 unsigned long destID, 00055 const MAKRti::DtString& fedExNameVal, 00056 std::vector<MAKRti::DtString> const& fomModuleName ); 00057 00059 void setSourceID( unsigned long ID ); 00060 unsigned long sourceID() const; 00061 00063 void setDestinationID( unsigned long ID ); 00064 unsigned long destinationID() const; 00065 00067 virtual void setFullFedExName( const MAKRti::DtString& fedExNameVal ); 00068 virtual MAKRti::DtString fullFedExName() const; 00069 00071 virtual void setFomModuleNames( std::vector<MAKRti::DtString> const& fomModuleName ); 00072 virtual void getFomModuleNames( std::vector<MAKRti::DtString>& modules ) const; 00073 00075 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00076 00077 00078 public: 00080 static DtRtiMsg* create( const DtNetMsgHeader* initial, 00081 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00082 00084 static DtRtiMsg* create( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00085 00087 static void addCallback(DtConnectionMgr* conn, 00088 DtFomModuleReqCb cb, void* usr); 00089 static void removeCallback(DtConnectionMgr* conn, 00090 DtFomModuleReqCb cb, void* usr); 00091 00092 protected: 00093 00095 virtual const DtNetFomModuleReqMsg* netFomModuleReqMsg() const; 00096 virtual DtNetFomModuleReqMsg* netFomModuleReqMsg(); 00097 00099 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00100 00102 virtual int minSize() const; 00103 00107 virtual int setMinSizes( const MAKRti::DtString& fedExNameVal, 00108 std::vector<MAKRti::DtString> const& fomModulesNamesVal); 00109 00111 virtual void setFedExNameSize( unsigned long size ); 00112 virtual unsigned int fedExNameSize() const; 00113 00115 virtual void setFomModuleNameSize( unsigned long size ); 00116 virtual unsigned int fomModuleNameSize() const; 00117 00119 virtual char* fedExNamePtr(); 00120 virtual char* fomModuleNamesPtr(); 00121 00123 virtual const char* fedExNamePtr() const; 00124 virtual const char* fomModuleNamesPtr() const; 00125 00126 virtual DtFomModuleRequestMsg* self() const; 00127 00128 }; 00129 00130 inline DtFomModuleRequestMsg* DtFomModuleRequestMsg::self() const 00131 { 00132 return const_cast<DtFomModuleRequestMsg*>( this ); 00133 } 00134 00135 #endif //! DtFomModuleRequestMsg_H_ 00136