![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 2006 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: mcastConfigureMsg.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtMcastConfigureMsg_H_ 00013 #define DtMcastConfigureMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netRtiMsgHdr.h" 00017 #include "netMcastConfigureMsg.h" 00018 #include <vlutil/vlInetAddr.h> 00019 00020 class DtConnectionMgr; 00021 class DtMcastConfigureMsg; 00022 typedef void (*DtMcastConfigureMsgCb)(const DtMcastConfigureMsg& inter, void* usr); 00023 00024 enum DtMcastConfigFlags 00025 { 00026 DtMcastListen, 00027 DtMcastDrop, 00028 DtMcastInvalid 00029 }; 00030 00037 class DT_DLL_LRC DtMcastConfigureMsg : public DtRtiMsg 00038 { 00039 public: 00040 00042 DtMcastConfigureMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00043 00044 DtMcastConfigureMsg(unsigned long ID, MAKRti::DtInetAddr mcastAddr, 00045 MAKRti::DtInetAddr interfaceAddr, DtMcastConfigFlags flag, 00046 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00047 00049 DtMcastConfigureMsg(const DtNetMulticastConfigureMsg* netRepMsg, 00050 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00051 00053 virtual ~DtMcastConfigureMsg(); 00054 00056 virtual DtRtiMsg* clone(bool copy = true) const; 00057 00059 virtual void set(unsigned long ID, const MAKRti::DtInetAddr& mcastAddr, 00060 const MAKRti::DtInetAddr& interfaceAddr, DtMcastConfigFlags flag); 00061 00063 void setSourceID( const unsigned long ID ); 00064 const unsigned long sourceID() const; 00065 00067 void setMcastAddr(const MAKRti::DtInetAddr& mcastAddr); 00068 MAKRti::DtInetAddr mcastAddr() const; 00069 00071 void setInterfaceAddr(const MAKRti::DtInetAddr& interfaceAddr); 00072 MAKRti::DtInetAddr interfaceAddr() const; 00073 00075 void setConfigFlag(DtMcastConfigFlags flag); 00076 DtMcastConfigFlags configFlag() const; 00077 00079 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00080 00081 public: 00082 00084 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00085 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00086 00088 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00089 00091 static void addCallback(DtConnectionMgr* conn, 00092 DtMcastConfigureMsgCb cb, void* usr); 00093 static void removeCallback(DtConnectionMgr* conn, 00094 DtMcastConfigureMsgCb cb, void* usr); 00095 00096 protected: 00097 00099 virtual DtNetMulticastConfigureMsg* netMulticastConfigMsg(); 00100 virtual const DtNetMulticastConfigureMsg* netMulticastConfigMsg() const; 00101 00103 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00104 00106 virtual int minSize() const; 00107 00109 virtual DtMcastConfigureMsg* self() const; 00110 }; 00111 00112 00113 inline DtMcastConfigureMsg* DtMcastConfigureMsg::self() const 00114 { 00115 return const_cast<DtMcastConfigureMsg*>( this ); 00116 } 00117 00118 #endif //! DtMcastConfigureMsg_H_ 00119