MAK RTIspy API Documentation for HLA Evolved
forwarderCounterMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2005 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: forwarderCounterMsg.h,v $ $Revision: 1.7 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtForwarderCounterMsg_H_
00013 #define DtForwarderCounterMsg_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 DtForwarderCounterMsg;
00022 class DtNetForwarderCounterMsg;
00023 typedef void (*DtForwarderCounterCb)(const DtForwarderCounterMsg& inter, void* usr);
00024 
00025 class DT_DLL_LRC DtForwarderCounterMsg : public DtRtiMsg
00026 {
00027 public:
00028    enum DtCounterStatus
00029    {
00030       CounterRequest = 0,
00031       CounterRequestFromUpstreamTarget,
00032       CounterResponse
00033    };
00034          
00036    DtForwarderCounterMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00037 
00039    DtForwarderCounterMsg(const DtNetForwarderCounterMsg* netRep,
00040       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00041 
00043    DtForwarderCounterMsg( const MAKRti::DtInetAddr& target, int port,
00044       DtCounterStatus status, unsigned int count,
00045       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00046 
00048    virtual ~DtForwarderCounterMsg();
00049 
00051    virtual DtRtiMsg* clone(bool copy = true) const;
00052 
00053 
00055    virtual void set( const MAKRti::DtInetAddr& target, int port,
00056       DtCounterStatus status, unsigned int count );
00057    
00059    virtual void setCounterStatus( DtCounterStatus status );
00060    virtual DtCounterStatus countStatus() const;
00061    
00063    virtual void setDestination( const MAKRti::DtInetAddr& target );
00064    virtual MAKRti::DtInetAddr destination() const;
00065 
00067    virtual void setPort( int port );
00068    virtual int port() const;
00069 
00071    virtual void setCount( unsigned int count );
00072    virtual unsigned int count() const;
00073 
00075    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00076 
00077 public:
00078 
00080    static DtRtiMsg* create(const DtNetMsgHeader* initial,
00081       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00082 
00083    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00084 
00086    static void addCallback(DtConnectionMgr* conn,
00087       DtForwarderCounterCb cb, void* usr, bool isMomCallback=false);
00088    static void removeCallback(DtConnectionMgr* conn,
00089       DtForwarderCounterCb cb, void* usr, bool isMomCallback=false);
00090 
00091 protected:
00092 
00094    virtual MAKRti::DtInetUtils::DtInetAddrFamily addressFamily() const;
00095    virtual void setAddressFamily(MAKRti::DtInetUtils::DtInetAddrFamily fam);
00096 
00098    virtual DtNetForwarderCounterMsg* netForwarderCounterMsg();
00099    virtual const DtNetForwarderCounterMsg* netForwarderCounterMsg() const;
00100 
00102    virtual DtRtiMsgKind internalDtRtiMsgKind();
00103 
00105    virtual int minSize() const;
00106 
00108    virtual DtForwarderCounterMsg* self() const;
00109    
00110 protected:
00111 
00112 };
00113 
00114 inline DtForwarderCounterMsg* DtForwarderCounterMsg::self() const
00115 {
00116    return const_cast<DtForwarderCounterMsg*>( this );
00117 }
00118 
00119 
00120 #endif
00121 

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)