![]() |
MAK RTIspy API Documentation for HLA 1.3
|
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