MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
messageThrottle.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2004 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: messageThrottle.h,v $ $Revision: 1.10 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtMessageThrottle_H_
13 #define DtMessageThrottle_H_
14 
15 #include "rtiMsConfig.h"
16 #include <vlutil/vlFedTarget.h>
17 #include <vlutil/vlTime.h>
18 #include <vlutil/vlInetAddr.h>
19 #include <queue>
20 
25 
26 
27 class DtConnectionMgr;
28 class DtRtiMsg;
29 
33 {
34 protected:
37 
38 public:
39 
41  DtDelayedMessage(DtRtiMsg* msg, MAKRti::DtTransportType transport, MAKRti::DtInetAddr addr);
42 
45 
47  MAKRti::DtTransportType transport;
48  MAKRti::DtInetAddr addr;
49 };
50 
52 {
53 protected:
56 
57 public:
58 
60  DtMessageThrottle(float transmitDelay, float transmitRate, float autoProvideDelay );
61 
63  virtual ~DtMessageThrottle();
64 
68  virtual void activateTransmitDelay();
69 
71  virtual bool delayTransmit() const;
72 
75  virtual bool queueMessage(DtRtiMsg const& msg, MAKRti::DtTransportType transport,
76  MAKRti::DtInetAddr addr);
77 
81  virtual bool queueMessage(DtRtiMsg* msg, MAKRti::DtTransportType transport,
82  MAKRti::DtInetAddr addr);
83 
90  virtual void testTransmitDelay(DtConnectionMgr* connMgr);
91 
95  virtual void activateAutoProvideDelay();
96 
98  virtual bool delayAutoProvide() const;
99 
102  virtual void testAutoProvideDelay(DtConnectionMgr* connMgr);
103 
105  virtual void processQueuedMessages(DtConnectionMgr* connMgr);
106 
108  virtual void flush(DtConnectionMgr* connMgr);
109 
111  virtual void clear();
112 
113 protected:
114 
115  MAKRti::DtClock myClock;
116  std::queue<DtDelayedMessage*> myMessageQueue;
117  MAKRti::DtTime myTransmitTime;
118  MAKRti::DtTime myTickTime;
119  MAKRti::DtTime myAutoProvideTime;
123  unsigned long myMessagePerTick;
124  unsigned long myMessagesSent;
132 };
133 
134 #endif
bool myTransmitTick
Definition: messageThrottle.h:130
MAKRti::DtTime myTransmitTime
Definition: messageThrottle.h:117
float myMessageRate
Definition: messageThrottle.h:122
Entry to store messages and send parameters in delay queue.
Definition: messageThrottle.h:32
bool myMeterMessages
Definition: messageThrottle.h:125
MAKRti::DtTransportType transport
Definition: messageThrottle.h:47
bool myDelayProvides
Definition: messageThrottle.h:128
Definition: messageThrottle.h:51
bool myDelayTransmit
Definition: messageThrottle.h:127
unsigned long myMessagePerTick
Definition: messageThrottle.h:123
std::queue< DtDelayedMessage * > myMessageQueue
Definition: messageThrottle.h:116
~DtDelayedMessage()
Destructor.
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:60
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:45
float myAutoProvideDelayInterval
Definition: messageThrottle.h:121
DtRtiMsg * msg
Definition: messageThrottle.h:46
MAKRti::DtTime myTickTime
Definition: messageThrottle.h:118
MAKRti::DtTime myAutoProvideTime
Definition: messageThrottle.h:119
MAKRti::DtInetAddr addr
Definition: messageThrottle.h:48
#define DT_DLL_LRC
Definition: rtiMsConfig.h:126
DtDelayedMessage()
Disable default constructor.
unsigned long myMessagesSent
Definition: messageThrottle.h:124
bool myAutoProvideTick
Definition: messageThrottle.h:131
float myTransmitDelayInterval
Definition: messageThrottle.h:120
bool myDelayAutoProvide
Definition: messageThrottle.h:129
MAKRti::DtClock myClock
Definition: messageThrottle.h:115
bool myDelayMessages
Definition: messageThrottle.h:126

Document ID: Generated on Mon Sep 7 15:40:32 EDT 2020 from SVN revision 217499
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)