![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2005 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: multicastDiscoveryMsg.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtMulticastDiscoveryMsg_H_ 00013 #define DtMulticastDiscoveryMsg_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include "rtiMsg.h" 00017 #include <vlutil/vlUtil.h> 00018 #include <vlutil/vlInetAddr.h> 00019 00020 class DtConnectionMgr; 00021 class DtMulticastDiscoveryMsg; 00022 class DtNetMulticastDiscoveryMsg; 00023 00024 typedef void (*DtMulticastDiscoveryCb)(const DtMulticastDiscoveryMsg& inter, void* usr); 00025 00026 class DT_DLL_LRC DtMulticastDiscoveryMsg : public DtRtiMsg 00027 { 00028 public: 00029 enum DtDiscoveryTarget 00030 { 00031 DtDiscoverRtiExec = 0, 00032 DtDiscoverTcpForwarder 00033 }; 00034 00035 enum DtDiscoveryStatus 00036 { 00037 DtDiscoveryRequest = 0, 00038 DtDiscoveryResponse 00039 }; 00040 00042 DtMulticastDiscoveryMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00043 00045 DtMulticastDiscoveryMsg(const DtNetMulticastDiscoveryMsg* netRep, 00046 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00047 00049 DtMulticastDiscoveryMsg( DtDiscoveryTarget target, DtDiscoveryStatus status, 00050 MAKRti::DtInetAddr addr, unsigned int id, DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00051 00053 virtual ~DtMulticastDiscoveryMsg(); 00054 00056 virtual DtRtiMsg* clone(bool copy = true) const; 00057 00058 00060 virtual void set( DtDiscoveryTarget target, DtDiscoveryStatus status, 00061 MAKRti::DtInetAddr addr, unsigned int id ); 00062 00064 virtual void setDiscoveryTarget( DtDiscoveryTarget target ); 00065 virtual DtDiscoveryTarget discoveryTarget() const; 00066 00068 virtual void setDiscoveryStatus( DtDiscoveryStatus status ); 00069 virtual DtDiscoveryStatus discoveryStatus() const; 00070 00072 virtual void setDiscoveryAddr( const MAKRti::DtInetAddr& addr ); 00073 virtual MAKRti::DtInetAddr discoveryAddr() const; 00074 00076 virtual void setDiscoveryId( unsigned int id ); 00077 virtual unsigned int discoveryId() const; 00078 00080 00082 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00083 00084 public: 00085 00087 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00088 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00089 00090 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00091 00093 static void addCallback(DtConnectionMgr* conn, 00094 DtMulticastDiscoveryCb cb, void* usr, bool isMomCallback=false); 00095 static void removeCallback(DtConnectionMgr* conn, 00096 DtMulticastDiscoveryCb cb, void* usr, bool isMomCallback=false); 00097 00098 protected: 00099 00101 virtual DtNetMulticastDiscoveryMsg* netMulticastDiscoveryMsg(); 00102 virtual const DtNetMulticastDiscoveryMsg* netMulticastDiscoveryMsg() const; 00103 00105 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00106 00108 virtual int minSize() const; 00109 00111 virtual DtMulticastDiscoveryMsg* self() const; 00112 00113 protected: 00114 00115 }; 00116 00117 inline DtMulticastDiscoveryMsg* DtMulticastDiscoveryMsg::self() const 00118 { 00119 return const_cast<DtMulticastDiscoveryMsg*>( this ); 00120 } 00121 00122 00123 #endif 00124