MAK RTIspy API Documentation for HLA 4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
msgQueue.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2001 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: msgQueue.h,v $ $Revision: 1.20 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtRtiMsgQueue_H_
13 #define DtRtiMsgQueue_H_
14 
15 #include <rtiMsConfig.h>
16 #include <internalTypes.h>
17 #include <sortedList.h>
18 #include <rtiApiTypes.h>
19 
20 #include <vlutil/vlHashlist.h>
21 #include <memory>
22 
23 class DtRtiMsg;
25 class DtInteractionMgr;
26 class DtObjectMgr;
27 
31 {
32 public:
33 
34  friend class DtRtiMsgQueue;
35 
36 public:
37 
39  virtual ~DtMessageItem();
40 
42  virtual bool operator<= (const DtSortedListItem& item) const;
43  virtual bool operator< (const DtSortedListItem& item) const;
44  virtual bool operator>= (const DtSortedListItem& item) const;
45  virtual bool operator> (const DtSortedListItem& item) const;
46  virtual bool operator== (const DtSortedListItem& item) const;
47 
49  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory);
50 
52  virtual DtRtiMsg* msg();
53 
54 protected:
55 
57  DtMessageItem(void* data, DtLogicalTimeFactory* fedTimeFactory);
58 
59 protected:
62 };
63 
65 {
66  return myMsg;
67 }
68 
70 
72 {
73 
74 public:
75  DtRtiMsgQueue(DtLogicalTimeFactory* fedTimeFactory, DtObjectMgr* objMgr=0, DtInteractionMgr* intMgr=0);
76 
77  virtual ~DtRtiMsgQueue();
78 
80  virtual bool timeRegulating();
81  virtual void setTimeRegulating(bool isTimeRegulating);
82  virtual bool timeConstrained();
83  virtual void setTimeConstrained(bool isTimeConstrained);
84  virtual bool asynchronous();
85  virtual void setAsynchronous(bool isAsynchronous);
86  virtual bool timeAvailable();
87  virtual void setTimeAvailable(bool isTimeAvailable);
88  virtual bool timeAdvancing();
89  virtual void setTimeAdvancing(bool isTimeAdvancing);
90 
92  virtual const DtRtiApiTime& timestamp();
93  virtual void setTimestamp(const DtRtiApiTime& federateTime);
94 
96  virtual const DtRtiApiTimeInterval& lookahead();
97  virtual void setLookahead(const DtRtiApiTimeInterval& lookaheadValue);
98 
103  virtual const DtRtiApiTime& galt();
104  virtual void setGalt(const DtRtiApiTime& federateTime);
105 
110  virtual bool queueMsg(DtRtiMsg const& msg);
111 
113  virtual void restoreMsg(DtRtiMsg const& msg);
114 
116  virtual DtRtiMsg* removeMsg(const DtMessageRetractionHandle& retractHandle);
117 
120  virtual bool deleteMsg(const DtMessageRetractionHandle& retractHandle);
121 
123  virtual void deleteMsgs(DtFederateHandle federateHandle);
124 
126  virtual void deleteAll();
127 
129  virtual DtRtiMsg* nextMsg(const DtRtiApiTime& timestamp);
130 
132  virtual DtRtiMsg* nextTsoMsg(const DtRtiApiTime& timestamp);
133 
135  virtual DtRtiMsg* removeNextTsoMsg();
136 
138  virtual DtRtiMsg* peekNextTsoMsg();
139 
141  inline unsigned int roQueueLength() const;
142 
144  virtual void clean();
145 
147  virtual bool isDirty() const;
148 
149 protected:
150 
153  virtual DtSortedListItem* newItem(void* data);
154 
155  DtRtiMsgQueue(const DtRtiMsgQueue& orig);
156  DtRtiMsgQueue& operator=(DtRtiMsgQueue const& orig);
157 
159  virtual DtSortedListItem* add(void* data);
160 
163  virtual int evaluateSubscription(DtRtiMsg const& msg);
164 
165 protected:
166 
167  MAKRti::DtList myRoList;
173  bool myIsDirty;
177  DtRtiApiUniquePtr<DtRtiApiTime> myTime;
178  DtRtiApiUniquePtr<DtRtiApiTimeInterval> myLookahead;
179  DtRtiApiUniquePtr<DtRtiApiTime> myGalt;
180 };
181 
183 {
185 }
186 
187 inline void DtRtiMsgQueue::setTimeRegulating(bool isTimeRegulating)
188 {
189  myTimeRegulatingEnabled = isTimeRegulating;
190 }
191 
193 {
195 }
196 
197 inline void DtRtiMsgQueue::setTimeConstrained(bool isTimeConstrained)
198 {
199  myTimeConstrainedEnabled = isTimeConstrained;
200 }
201 
203 {
204  return myAsynchronous;
205 }
206 
207 inline void DtRtiMsgQueue::setAsynchronous(bool isAsynchronous)
208 {
209  myAsynchronous = isAsynchronous;
210 }
211 
213 {
214  return myTimeAvailable;
215 }
216 
217 inline void DtRtiMsgQueue::setTimeAvailable(bool isTimeAvailable)
218 {
219  myTimeAvailable = isTimeAvailable;
220 }
221 
223 {
224  return myTimeAdvancing;
225 }
226 
227 inline void DtRtiMsgQueue::setTimeAdvancing(bool isTimeAdvancing)
228 {
229  myTimeAdvancing = isTimeAdvancing;
230 }
231 
233 {
234  return *myTime;
235 }
236 
237 inline void DtRtiMsgQueue::setTimestamp(const DtRtiApiTime& federateTime)
238 {
239  *myTime = federateTime;
240 }
241 
243 {
244  return *myLookahead;
245 }
246 
247 inline void DtRtiMsgQueue::setLookahead(const DtRtiApiTimeInterval& lookaheadValue)
248 {
249  *myLookahead = lookaheadValue;
250 }
251 
253 {
254  return *myGalt;
255 }
256 
257 inline void DtRtiMsgQueue::setGalt(const DtRtiApiTime& federateTime)
258 {
259  *myGalt = federateTime;
260 }
261 
262 inline unsigned int DtRtiMsgQueue::roQueueLength() const
263 {
264  return myRoList.count();
265 }
266 
267 #endif
bool myTimeAvailable
Definition: msgQueue.h:171
bool myIsDirty
Definition: msgQueue.h:173
virtual void setTimeConstrained(bool isTimeConstrained)
Definition: msgQueue.h:197
virtual bool timeRegulating()
Set/Get status of time regulation/constraint.
Definition: msgQueue.h:182
virtual bool operator<(const DtSortedListItem &) const
Sorted list for queueing messages in time stamped order.
Definition: msgQueue.h:71
DtInteractionMgr * myIntMgr
Definition: msgQueue.h:176
bool myTimeRegulatingEnabled
Definition: msgQueue.h:169
unsigned int roQueueLength() const
Return the RO queue length.
Definition: msgQueue.h:262
Definition: fedTimeFactory.h:73
virtual void setGalt(const DtRtiApiTime &federateTime)
Definition: msgQueue.h:257
virtual bool timeAdvancing()
Definition: msgQueue.h:222
DtRtiApiUniquePtr< DtRtiApiTime > myGalt
Definition: msgQueue.h:179
virtual void setTimeAdvancing(bool isTimeAdvancing)
Definition: msgQueue.h:227
virtual void printData()
Print data contents.
virtual DtSortedListItem * newItem(void *data)
Create a new sorted list item envelope for the data to be inserted into the list. ...
virtual bool timeAvailable()
Definition: msgQueue.h:212
RTI_API::LogicalTime DtRtiApiTime
Typedefs for RTI API types that frequently require conditional precompile directives.
Definition: rtiApiTypes.h:91
DtObjectMgr * myObjMgr
Definition: msgQueue.h:175
virtual bool asynchronous()
Definition: msgQueue.h:202
virtual void setTimeRegulating(bool isTimeRegulating)
Definition: msgQueue.h:187
DtSortedListItem is an envelope class used by DtSortedList.
Definition: sortedList.h:24
virtual bool operator==(const DtSortedListItem &) const
MAKRti::DtList myRoList
Definition: msgQueue.h:167
virtual void setTimestamp(const DtRtiApiTime &federateTime)
Definition: msgQueue.h:237
virtual const DtRtiApiTime & galt()
Set/Get greatest allowed logical time When in the time advancing state messages with timestamps less ...
Definition: msgQueue.h:252
Envelope used by DtMsgQueue to contain the messsage inserted into it.
Definition: msgQueue.h:30
Instances of DtInteractionMgr manage the sending and receiving of interactions.
Definition: interMgr.h:46
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:34
DtHandle DtFederateHandle
Definition: internalTypes.h:46
virtual DtSortedListItem * add(void *data)
Add element to the list in sorted order.
virtual bool timeConstrained()
Definition: msgQueue.h:192
bool myAsynchronous
Definition: msgQueue.h:170
DtSortedList & operator=(const DtSortedList &orig)
Assignment operator.
The object manager class processes the object management services.
Definition: objMgr.h:81
virtual void setTimeAvailable(bool isTimeAvailable)
Definition: msgQueue.h:217
bool myTimeConstrainedEnabled
Definition: msgQueue.h:168
DtRtiApiUniquePtr< DtRtiApiTime > myTime
Definition: msgQueue.h:177
Definition: internalTypes.h:84
virtual bool operator>(const DtSortedListItem &) const
virtual DtRtiMsg * msg()
Return pointer to data as a message.
Definition: msgQueue.h:64
DtLogicalTimeFactory * myLogicalTimeFactory
Definition: msgQueue.h:174
virtual bool operator<=(const DtSortedListItem &) const
Comparison operators for sorting.
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155
RTI_API::LogicalTimeInterval DtRtiApiTimeInterval
Definition: rtiApiTypes.h:92
DtRtiMsg * myMsg
Definition: msgQueue.h:60
The declaration of internal types.
bool myTimeAdvancing
Definition: msgQueue.h:172
virtual void setLookahead(const DtRtiApiTimeInterval &lookaheadValue)
Definition: msgQueue.h:247
DtRtiApiUniquePtr< DtRtiApiTimeInterval > myLookahead
Definition: msgQueue.h:178
DtLogicalTimeFactory * myLogicalTimeFactory
Definition: msgQueue.h:61
virtual const DtRtiApiTimeInterval & lookahead()
Set/Get current federate lookahead.
Definition: msgQueue.h:242
A DtSortedList is a list of elements of arbitrary type.
Definition: sortedList.h:98
virtual bool operator>=(const DtSortedListItem &) const
virtual const DtRtiApiTime & timestamp()
Set/Get current federate time.
Definition: msgQueue.h:232
virtual void setAsynchronous(bool isAsynchronous)
Definition: msgQueue.h:207

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)