MAK RTIspy API Documentation for HLA 1.3
fomModuleDistributionMsg.h
Go to the documentation of this file.
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 

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)