![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /************************************************************************** 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 ***************************************************************************/ 00005 /************************************************************************** 00006 ** $RCSfile: fomModuleDistributionMsg.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 ***************************************************************************/ 00008 00011 00012 #ifndef DtFomModuleDistributionMsg_H_ 00013 #define DtFomModuleDistributionMsg_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include "rtiMsg.h" 00017 #include "netFedFileMsg.h" 00018 #include <vlutil/vlString.h> 00019 00020 class DtConnectionMgr; 00021 class DtFomModuleDistributionMsg; 00022 typedef void (*DtFomModuleDistCb)(const DtFomModuleDistributionMsg& inter, void* usr); 00023 00024 00025 class DT_DLL_LRC DtFomModuleDistributionMsg : public DtRtiMsg 00026 { 00027 public: 00028 00030 DtFomModuleDistributionMsg( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00031 00033 DtFomModuleDistributionMsg( const DtNetFedFileMsg* netRepMsg, 00034 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00035 00037 virtual ~DtFomModuleDistributionMsg(); 00038 00040 virtual DtRtiMsg* clone(bool copy = true) const; 00041 00043 virtual void setFomModuleName( const MAKRti::DtString& fileName ); 00044 virtual MAKRti::DtString fomModuleName() const; 00045 00047 virtual unsigned int fomModuleNameLength() const; 00048 00050 virtual void setFullFedExName( const MAKRti::DtString& fedExName ); 00051 virtual MAKRti::DtString fullFedExName() const; 00052 00054 virtual unsigned int fedExNameLength() const; 00055 00057 virtual void setBlock( unsigned short numBlocks, 00058 unsigned short seqNum, unsigned short blockLength, 00059 const char* fomModuleBlock ); 00060 00062 virtual void setDestination( const DtFederateHandle& destination ); 00063 virtual DtFederateHandle destination() const; 00064 00066 virtual void setSourceID( unsigned long ID ); 00067 virtual unsigned long sourceID() const; 00068 00069 00072 virtual void setBlockSize( unsigned short blockLength ); 00073 virtual unsigned short blockSize() const; 00074 00076 virtual void setSequenceNum( unsigned short seqNum ); 00077 virtual unsigned short seqNum() const; 00078 00080 virtual void setNumFomModuleBlocks( unsigned short numBlocks ); 00081 virtual unsigned short numFomModuleBlocks() const; 00082 00084 virtual void writeFomModuleBlock( const char* fomModuleBlock ); 00085 virtual const char* readFomModuleBlock() const; 00086 00088 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00089 00090 public: 00091 00093 static DtRtiMsg* create( const DtNetMsgHeader* initial, 00094 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00095 00097 static DtRtiMsg* create( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00098 00100 static void addCallback(DtConnectionMgr* conn, 00101 DtFomModuleDistCb cb, void* usr); 00102 static void removeCallback(DtConnectionMgr* conn, 00103 DtFomModuleDistCb cb, void* usr); 00104 00105 00106 protected: 00107 00109 virtual DtNetFedFileMsg* netFomModuleMsg(); 00110 virtual const DtNetFedFileMsg* netFomModuleMsg() const; 00111 00113 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00114 00116 virtual int minSize() const; 00117 00119 virtual char* fileNamePtr() const; 00120 virtual char* fedExNamePtr() const; 00121 virtual char* fileBufferPtr() const; 00122 00124 virtual DtFomModuleDistributionMsg* self() const; 00125 00126 }; 00127 00128 00129 inline DtFomModuleDistributionMsg* DtFomModuleDistributionMsg::self() const 00130 { 00131 return const_cast<DtFomModuleDistributionMsg*>( this ); 00132 } 00133 00134 #endif //! DtFomModuleDistributionMsg_H_ 00135