![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: reconnectMsg.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtReconnectMsg_H_ 00013 #define DtReconnectMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netReconnectMsg.h" 00017 00018 class DtConnectionMgr; 00019 class DtReconnectMsg; 00020 typedef void (*DtReconnectMsgCb)(const DtReconnectMsg& inter, void* usr); 00021 00022 class DT_DLL_LRC DtReconnectMsg : public DtRtiMsg 00023 { 00024 public: 00025 enum DtReconnectStatus { 00026 DtReconnectRequest = 0, 00027 DtReconnectAccepted, 00028 DtReconnectDenied 00029 }; 00030 00032 DtReconnectMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00033 00035 DtReconnectMsg(const DtNetReconnectMsg* netRep, 00036 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00037 00039 DtReconnectMsg( DtHandle oldConnId, 00040 DtHandle newConnId, 00041 DtFederateHandle fedId, 00042 DtReconnectStatus status, 00043 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00044 00046 virtual ~DtReconnectMsg(); 00047 00049 virtual DtRtiMsg* clone(bool copy = true) const; 00050 00052 virtual void set( DtHandle oldConnId, DtHandle newConnId, DtFederateHandle fedId, 00053 DtReconnectStatus status ); 00054 00055 // Set / get old connection handle 00056 virtual DtHandle oldConnectionHandle() const; 00057 virtual void setOldConnectionHandle(DtHandle handle); 00058 00060 virtual DtHandle newConnectionHandle() const; 00061 virtual void setNewConnectionHandle(DtHandle handle); 00062 00064 virtual DtReconnectStatus reconnectStatus() const; 00065 virtual void setReconnectStatus( DtReconnectStatus status ); 00066 00068 virtual DtFederateHandle federateHandle() const; 00069 virtual void setFederateHandle(DtFederateHandle handle); 00070 00072 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00073 00074 public: 00075 00077 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00078 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00079 00080 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00081 00083 static void addCallback(DtConnectionMgr* conn, 00084 DtReconnectMsgCb cb, void* usr, bool isMomCallback=false); 00085 static void removeCallback(DtConnectionMgr* conn, 00086 DtReconnectMsgCb cb, void* usr, bool isMomCallback=false); 00087 00088 protected: 00089 00091 virtual DtNetReconnectMsg* netReconnectMsg(); 00092 virtual const DtNetReconnectMsg* netReconnectMsg() const; 00093 00095 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00096 00098 virtual int minSize() const; 00099 00101 virtual DtReconnectMsg* self() const; 00102 00103 protected: 00104 00105 }; 00106 00107 00108 inline DtReconnectMsg* DtReconnectMsg::self() const 00109 { 00110 return (DtReconnectMsg*) this; 00111 } 00112 00113 #endif 00114