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

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)