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

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)