MAK RTIspy API Documentation for HLA 1.3
joinMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1998 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: joinMsg.h,v $ $Revision: 1.37 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtJoinMsg_H_
00013 #define DtJoinMsg_H_
00014 
00015 #include "rtiMsg.h"
00016 #include "netRtiMsgHdr.h"
00017 #include "netJoinMsg.h"
00018 #include "rtiVersion.h"
00019 #include <vlutil/vlString.h>
00020 #include <vlutil/vlUtil.h>
00021 #include <vlutil/vlInetAddr.h>
00022 
00023 class DtConnectionMgr;
00024 class DtJoinMsg;
00025 typedef void (*DtJoinCb)(const DtJoinMsg& inter, void* usr);
00026 
00027 class DT_DLL_LRC DtJoinMsg : public DtRtiMsg
00028 {
00029 public:
00030 
00032    DtJoinMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00033 
00034    DtJoinMsg(
00035       unsigned long sourceIDValue,
00036       unsigned short requestIDValue,
00037       MAKRti::DtString const & fedTypeValue,
00038       MAKRti::DtString const & fedExNameValue,
00039       MAKRti::DtString const & fedNameValue,
00040       MAKRti::DtString const& federateHostNameValue,
00041       const std::vector<MAKRti::DtString>& moduleNames,
00042       DtHlaVersionId hlaVersion,
00043       unsigned long flagsValue,
00044       unsigned int needPartnerValue,
00045       const std::vector<unsigned int>& joinModulesCrcs,
00046       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00047 
00049    DtJoinMsg(const DtNetJoinMsg* netRepMsg,
00050       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00051 
00053    virtual ~DtJoinMsg();
00054 
00056    virtual DtRtiMsg* clone(bool copy = true) const; 
00057 
00059    virtual void set(
00060       unsigned long sourceIDValue,
00061       unsigned short requestIDValue,      
00062       MAKRti::DtString const & fedTypeValue,
00063       MAKRti::DtString const & fedExNameValue,
00064       MAKRti::DtString const & fedNameValue,
00065       MAKRti::DtString const& federateHostNameValue,
00066       const std::vector<MAKRti::DtString>& moduleNames,
00067       DtHlaVersionId hlaVersion,
00068       unsigned long flagsValue,
00069       unsigned int needPartnerValue,
00070       const std::vector<unsigned int>& joinModulesCrcs);
00071 
00076    virtual unsigned long sourceID() const;
00077    virtual void setSourceID(unsigned long sourceIDValue);
00078 
00080    virtual unsigned short requestID() const;
00081    virtual void setRequestID(unsigned short requestIDValue);
00082 
00084    virtual void setFederateType(MAKRti::DtString const & type);
00085    virtual MAKRti::DtString federateType() const;
00086 
00088    virtual void setFullFedExName(MAKRti::DtString const & name);
00089    virtual MAKRti::DtString fullFedExName() const;
00090 
00092    virtual void setFederateName(MAKRti::DtString const & name);
00093    virtual MAKRti::DtString federateName() const;
00094 
00096    virtual void setFederateHostName(MAKRti::DtString const& name);
00097    virtual MAKRti::DtString federateHostName() const;
00098 
00100    virtual void setFomModuleNames( const std::vector<MAKRti::DtString> & moduleNames);
00101    virtual void getFomModuleNames(std::vector<MAKRti::DtString>& modules) const;
00102 
00105    virtual void setIpAddress( const MAKRti::DtInetAddr& ip );
00106    virtual MAKRti::DtInetAddr ipAddress() const;
00107 
00109    virtual MAKRti::DtInetAddr webServerAddress() const;
00110    virtual void setWebServerAddress(const MAKRti::DtInetAddr& ip);
00111 
00113    virtual int webServerPort() const;
00114    virtual void setWebServerPort(int port);
00115 
00117    virtual void setHlaVersion(DtHlaVersionId version);
00118    virtual DtHlaVersionId hlaVersion() const;
00119 
00121    virtual void setFlags( unsigned long value );
00122    virtual unsigned long flags() const;
00123 
00125    virtual void setNeedPartner( unsigned int value );
00126    virtual unsigned int needPartner() const;
00127 
00129    unsigned int numOfCrcs() const;
00130    void setNumOfCrcs(unsigned int value);
00131 
00133    virtual void setCrcsOfFedFiles(const std::vector<unsigned int> & moduleCrcs );
00134    virtual void getCRCsOfFedFiles(std::vector<unsigned int>& crcOfFedFiles) const;
00135 
00137    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00138 
00139 public:
00140 
00142    static DtRtiMsg* create(const DtNetMsgHeader* initial,
00143       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00144 
00146    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00147 
00149    static void addCallback(DtConnectionMgr* conn,
00150       DtJoinCb cb, void* usr);
00151    static void removeCallback(DtConnectionMgr* conn,
00152       DtJoinCb cb, void* usr);
00153 
00154 protected:
00155 
00157    virtual DtNetJoinMsg* netJoinMsg();
00158    virtual const DtNetJoinMsg* netJoinMsg() const;
00159 
00161    virtual DtRtiMsgKind internalDtRtiMsgKind();
00162 
00164    virtual int minSize() const;
00165 
00169    virtual int setMinSizes( MAKRti::DtString const & federateType,
00170       MAKRti::DtString const & fedExName,
00171       MAKRti::DtString const & federateName,
00172       MAKRti::DtString const& federateHostName,
00173       const std::vector<MAKRti::DtString>& fomModuleNamesVal,
00174       const std::vector<unsigned int>& joinModulesCrcs);
00175 
00177    virtual void setFederateTypeSize( unsigned long size );
00178    virtual unsigned long federateTypeSize() const;
00179 
00181    virtual void setFedExNameSize( unsigned long size );
00182    virtual unsigned long fedExNameSize() const;
00183 
00185    virtual void setFederateNameSize( unsigned long size );
00186    virtual unsigned long federateNameSize() const;
00187 
00189    virtual void setFederateHostNameSize( unsigned long size );
00190    virtual unsigned long federateHostNameSize() const;
00191 
00193    virtual void setfomModuleNameSize( unsigned long size );
00194    virtual unsigned long fomModuleNameSize() const;
00195 
00197    virtual const char* federateNamePtr() const;
00198    virtual const char* fedExNamePtr() const;
00199    virtual const char* federateTypePtr() const;
00200    virtual const char* fomModuleNamesPtr() const;
00201    virtual const char* federateHostNamePtr() const;
00202    virtual const DtNetU32* crcsOfFomModulesPtr() const;
00203    
00204    //non-const versions
00205    virtual char* federateNamePtr();
00206    virtual char* fedExNamePtr();
00207    virtual char* federateTypePtr();
00208    virtual char* fomModuleNamesPtr();
00209    virtual char* federateHostNamePtr();
00210    virtual DtNetU32* crcsOfFomModulesPtr();
00211 
00213    virtual DtJoinMsg* self() const;
00214 };
00215 
00216 
00217 inline DtJoinMsg* DtJoinMsg::self() const
00218 {
00219    return const_cast<DtJoinMsg*>( this );
00220 }
00221 
00222 #endif
00223 

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)