MAK RTIspy API Documentation for HLA Evolved
mcastConfigureMsg.h
Go to the documentation of this file.
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 

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)