![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: execConnectMsg.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtRtiExecConnectMsg_H_ 00013 #define DtRtiExecConnectMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include <vlutil/vlUtil.h> 00017 #include <vlutil/vlInetAddr.h> 00018 #include "netExecConnectMsg.h" 00019 00020 class DtConnectionMgr; 00021 class DtRtiExecConnectMsg; 00022 00023 typedef void (*DtRtiExecConnectCb)(const DtRtiExecConnectMsg& inter, void* usr); 00024 00025 class DT_DLL_LRC DtRtiExecConnectMsg : public DtRtiMsg 00026 { 00027 public: 00028 00030 DtRtiExecConnectMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00031 00033 DtRtiExecConnectMsg(const DtNetExecConnectMsg* netRep, 00034 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00035 00037 DtRtiExecConnectMsg(DtHandle handle, const MAKRti::DtInetAddr& rootFwAddr, 00038 int rootFwPort, const MAKRti::DtString& hostName, bool fullyCompliant, 00039 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00040 00042 virtual ~DtRtiExecConnectMsg(); 00043 00045 virtual DtRtiMsg* clone(bool copy = true) const; 00046 00048 virtual void set(DtHandle handle, const MAKRti::DtInetAddr& rootFwAddr, 00049 int rootFwPort, const MAKRti::DtString& hostName, bool fullyCompliant); 00050 00052 virtual DtHandle connectionHandle() const; 00053 virtual void setConnectionHandle(DtHandle handle); 00054 00056 virtual MAKRti::DtInetAddr rootForwarderAddr() const; 00057 virtual void setRootForwarderAddr(const MAKRti::DtInetAddr& addr); 00058 00060 virtual int rootForwarderPort() const; 00061 virtual void setRootForwarderPort(int port); 00062 00064 virtual MAKRti::DtInetUtils::DtInetAddrFamily addressFamily() const; 00065 virtual void setAddressFamily(MAKRti::DtInetUtils::DtInetAddrFamily fam); 00066 00068 virtual void setHostName(const MAKRti::DtString& name); 00069 virtual MAKRti::DtString hostName() const; 00070 00072 virtual void setFullyCompliant(bool fullCompliance); 00073 virtual bool fullyCompliant() const; 00074 00075 00077 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00078 00079 public: 00080 00082 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00083 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00084 00085 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00086 00088 static void addCallback(DtConnectionMgr* conn, 00089 DtRtiExecConnectCb cb, void* usr, bool isMomCallback=false); 00090 static void removeCallback(DtConnectionMgr* conn, 00091 DtRtiExecConnectCb cb, void* usr, bool isMomCallback=false); 00092 00093 protected: 00094 00096 virtual DtNetExecConnectMsg* netExecConnectMsg(); 00097 virtual const DtNetExecConnectMsg* netExecConnectMsg() const; 00098 00100 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00101 00103 virtual char* hostNamePtr(); 00104 virtual const char* hostNamePtr() const; 00105 virtual int hostNameSize() const; 00106 00108 virtual int minSize() const; 00109 00111 virtual DtRtiExecConnectMsg* self() const; 00112 00113 protected: 00114 00115 }; 00116 00117 inline DtRtiExecConnectMsg* DtRtiExecConnectMsg::self() const 00118 { 00119 return const_cast<DtRtiExecConnectMsg*>( this ); 00120 } 00121 00122 #endif 00123