![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2005 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: execHandshakeMsg.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtRtiExecHandshakeMsg_H_ 00013 #define DtRtiExecHandshakeMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 00017 00018 class DtConnectionMgr; 00019 class DtRtiExecHandshakeMsg; 00020 class DtNetExecHandshakeMsg; 00021 typedef void (*DtRtiExecHsCb)(const DtRtiExecHandshakeMsg& inter, void* usr); 00022 00023 class DT_DLL_LRC DtRtiExecHandshakeMsg : public DtRtiMsg 00024 { 00025 public: 00026 enum DtHandshakeStatus 00027 { 00028 HsRequest = 0, 00029 HsResponseGranted, 00030 HsResponseDenied 00031 }; 00032 00034 DtRtiExecHandshakeMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00035 00037 DtRtiExecHandshakeMsg(const DtNetExecHandshakeMsg* netRep, 00038 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 00041 DtRtiExecHandshakeMsg(DtHandle srcHandle, DtHandle destHandle, DtHandshakeStatus hsStatus, 00042 MAKRti::DtString sourceHostName, bool fullyCompliant, 00043 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00044 00046 virtual ~DtRtiExecHandshakeMsg(); 00047 00049 virtual DtRtiMsg* clone(bool copy = true) const; 00050 00052 virtual void set( DtHandle srcHandle, DtHandle destHandle, 00053 DtHandshakeStatus hsStatus, MAKRti::DtString sourceHost, 00054 bool fullyCompliant ); 00055 00057 virtual DtHandle srcConnectionHandle() const; 00058 virtual void setSrcConnectionHandle( DtHandle handle ); 00059 00061 virtual DtHandle destConnectionHandle() const; 00062 virtual void setDestConnectionHandle( DtHandle handle ); 00063 00064 virtual MAKRti::DtString sourceHostName() const; 00065 00067 virtual DtHandshakeStatus handshakeStatus() const; 00068 virtual void setHandshakeStatus( DtHandshakeStatus hsStatus ); 00069 00071 virtual bool fullyCompliant() const; 00072 virtual void setFullyCompliant( bool fullComplianceEnabled ); 00073 00075 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00076 00077 public: 00078 00080 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00081 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00082 00083 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00084 00086 static void addCallback(DtConnectionMgr* conn, 00087 DtRtiExecHsCb cb, void* usr, bool isMomCallback=false); 00088 static void removeCallback(DtConnectionMgr* conn, 00089 DtRtiExecHsCb cb, void* usr, bool isMomCallback=false); 00090 00091 protected: 00092 00094 virtual DtNetExecHandshakeMsg* netExecHandshakeMsg(); 00095 virtual const DtNetExecHandshakeMsg* netExecHandshakeMsg() const; 00096 00097 00098 virtual char* sourceHostNamePtr(); 00099 virtual const char* sourceHostNamePtr() const; 00100 virtual int sourceHostNameSize() const; 00101 virtual void setSourceHostName(const MAKRti::DtString& hostName); 00102 00104 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00105 00107 virtual int minSize() const; 00108 00110 virtual DtRtiExecHandshakeMsg* self() const; 00111 00112 protected: 00113 00114 }; 00115 00116 00117 inline DtRtiExecHandshakeMsg* DtRtiExecHandshakeMsg::self() const 00118 { 00119 return const_cast<DtRtiExecHandshakeMsg*>( this ); 00120 } 00121 00122 #endif 00123