MAK RTIspy API Documentation for HLA 1516
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 <vlutil/vlHashlist.h>
18 #include "sortedList.h"
19 #include <memory>
20 
21 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
22 #include <RTI/LogicalTime.h>
23 #include <RTI/LogicalTimeInterval.h>
24 #else
25 #ifdef DtIFSPEC13DLC
26 #include "RTI13.h"
27 #define RTI rti13
28 #else
29 #include "RTI.hh"
30 #endif
31 #endif
32 
33 class DtRtiMsg;
35 
39 {
40 public:
41 
42  friend class DtRtiMsgQueue;
43 
44 public:
45 
47  virtual ~DtMessageItem();
48 
50  virtual bool operator<= (const DtSortedListItem& item) const;
51  virtual bool operator< (const DtSortedListItem& item) const;
52  virtual bool operator>= (const DtSortedListItem& item) const;
53  virtual bool operator> (const DtSortedListItem& item) const;
54  virtual bool operator== (const DtSortedListItem& item) const;
55 
57  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory);
58 
60  virtual DtRtiMsg* msg();
61 
62 protected:
63 
65  DtMessageItem(void* data, DtLogicalTimeFactory* fedTimeFactory);
66 
67 protected:
70 };
71 
73 {
74  return myMsg;
75 }
76 
78 
80 {
81 
82 public:
83  DtRtiMsgQueue(DtLogicalTimeFactory* fedTimeFactory);
84 
85  virtual ~DtRtiMsgQueue();
86 
88  virtual bool timeRegulating();
89  virtual void setTimeRegulating(bool isTimeRegulating);
90  virtual bool timeConstrained();
91  virtual void setTimeConstrained(bool isTimeConstrained);
92  virtual bool asynchronous();
93  virtual void setAsynchronous(bool isAsynchronous);
94  virtual bool timeAvailable();
95  virtual void setTimeAvailable(bool isTimeAvailable);
96  virtual bool timeAdvancing();
97  virtual void setTimeAdvancing(bool isTimeAdvancing);
98 
99 #ifdef DtIFSPEC1516
100 
101  virtual const rti1516::LogicalTime& timestamp();
102  virtual void setTimestamp(const rti1516::LogicalTime& federateTime);
103 
105  virtual const rti1516::LogicalTimeInterval& lookahead();
106  virtual void setLookahead(const rti1516::LogicalTimeInterval& lookaheadValue);
107 
112  virtual const rti1516::LogicalTime& galt();
113  virtual void setGalt(const rti1516::LogicalTime& federateTime);
114 
115 #elif defined(DtIFSPEC1516E)
116 
117  virtual const rti1516e::LogicalTime& timestamp();
118  virtual void setTimestamp(const rti1516e::LogicalTime& federateTime);
119 
121  virtual const rti1516e::LogicalTimeInterval& lookahead();
122  virtual void setLookahead(const rti1516e::LogicalTimeInterval& lookaheadValue);
123 
128  virtual const rti1516e::LogicalTime& galt();
129  virtual void setGalt(const rti1516e::LogicalTime& federateTime);
130 #else
131 
132  virtual const RTI::FedTime& timestamp();
133  virtual void setTimestamp(const RTI::FedTime& federateTime);
134 
136  virtual const RTI::FedTime& lookahead();
137  virtual void setLookahead(const RTI::FedTime& lookaheadValue);
138 
143  virtual const RTI::FedTime& galt();
144  virtual void setGalt(const RTI::FedTime& federateTime);
145 #endif
146 
147 
152  virtual bool queueMsg(DtRtiMsg const& msg);
153 
155  virtual DtRtiMsg* removeMsg(const DtMessageRetractionHandle& retractHandle);
156 
159  virtual bool deleteMsg(const DtMessageRetractionHandle& retractHandle);
160 
162  virtual void deleteMsgs(DtFederateHandle federateHandle);
163 
165  virtual void deleteAll();
166 
167 #ifdef DtIFSPEC1516
168 
169  virtual DtRtiMsg* nextMsg(const rti1516::LogicalTime& timestamp);
170 
172  virtual DtRtiMsg* nextTsoMsg(const rti1516::LogicalTime& timestamp);
173 #elif defined(DtIFSPEC1516E)
174 
175  virtual DtRtiMsg* nextMsg(const rti1516e::LogicalTime& timestamp);
176 
178  virtual DtRtiMsg* nextTsoMsg(const rti1516e::LogicalTime& timestamp);
179 #else
180 
181  virtual DtRtiMsg* nextMsg(const RTI::FedTime& timestamp);
182 
184  virtual DtRtiMsg* nextTsoMsg(const RTI::FedTime& timestamp);
185 #endif
186 
188  virtual DtRtiMsg* removeNextTsoMsg();
189 
191  virtual DtRtiMsg* peekNextTsoMsg();
192 
193  inline unsigned int roQueueLength() const;
194 
195 protected:
196 
199  virtual DtSortedListItem* newItem(void* data);
200 
201  DtRtiMsgQueue(const DtRtiMsgQueue& orig);
202  DtRtiMsgQueue& operator=(DtRtiMsgQueue const& orig);
203 
205  virtual DtSortedListItem* add(void* data);
206 
207 protected:
208 
209  MAKRti::DtList myRoList;
216 #ifdef DtIFSPEC1516
217  std::auto_ptr <rti1516::LogicalTime> myTime;
218  std::auto_ptr <rti1516::LogicalTimeInterval> myLookahead;
219  std::auto_ptr <rti1516::LogicalTime> myGalt;
220 #elif defined(DtIFSPEC1516E)
221  std::auto_ptr <rti1516e::LogicalTime> myTime;
222  std::auto_ptr <rti1516e::LogicalTimeInterval> myLookahead;
223  std::auto_ptr <rti1516e::LogicalTime> myGalt;
224 #else
225  std::auto_ptr <RTI::FedTime> myTime;
226  std::auto_ptr <RTI::FedTime> myLookahead;
227  std::auto_ptr <RTI::FedTime> myGalt;
228 #endif
229 };
230 
232 {
234 }
235 
236 inline void DtRtiMsgQueue::setTimeRegulating(bool isTimeRegulating)
237 {
238  myTimeRegulatingEnabled = isTimeRegulating;
239 }
240 
242 {
244 }
245 
246 inline void DtRtiMsgQueue::setTimeConstrained(bool isTimeConstrained)
247 {
248  myTimeConstrainedEnabled = isTimeConstrained;
249 }
250 
252 {
253  return myAsynchronous;
254 }
255 
256 inline void DtRtiMsgQueue::setAsynchronous(bool isAsynchronous)
257 {
258  myAsynchronous = isAsynchronous;
259 }
260 
262 {
263  return myTimeAvailable;
264 }
265 
266 inline void DtRtiMsgQueue::setTimeAvailable(bool isTimeAvailable)
267 {
268  myTimeAvailable = isTimeAvailable;
269 }
270 
272 {
273  return myTimeAdvancing;
274 }
275 
276 inline void DtRtiMsgQueue::setTimeAdvancing(bool isTimeAdvancing)
277 {
278  myTimeAdvancing = isTimeAdvancing;
279 }
280 
281 #ifdef DtIFSPEC1516
283 #elif defined(DtIFSPEC1516E)
285 #else
287 #endif
288 {
289  return *myTime;
290 }
291 
292 #ifdef DtIFSPEC1516
293 inline void DtRtiMsgQueue::setTimestamp(
294  const rti1516::LogicalTime& federateTime)
295 #elif defined(DtIFSPEC1516E)
296 inline void DtRtiMsgQueue::setTimestamp(
297  const rti1516e::LogicalTime& federateTime)
298 #else
299 inline void DtRtiMsgQueue::setTimestamp(const RTI::FedTime& federateTime)
300 #endif
301 {
302  *myTime = federateTime;
303 }
304 
305 #ifdef DtIFSPEC1516
307 #elif defined(DtIFSPEC1516E)
309 #else
311 #endif
312 {
313  return *myLookahead;
314 }
315 
316 #ifdef DtIFSPEC1516
317 inline void DtRtiMsgQueue::setLookahead(
318  const rti1516::LogicalTimeInterval& lookaheadValue)
319 #elif defined(DtIFSPEC1516E)
320 inline void DtRtiMsgQueue::setLookahead(
321  const rti1516e::LogicalTimeInterval& lookaheadValue)
322 #else
323 inline void DtRtiMsgQueue::setLookahead(const RTI::FedTime& lookaheadValue)
324 #endif
325 {
326  *myLookahead = lookaheadValue;
327 }
328 
329 #ifdef DtIFSPEC1516
331 #elif defined(DtIFSPEC1516E)
333 #else
335 #endif
336 {
337  return *myGalt;
338 }
339 
340 #ifdef DtIFSPEC1516
341 inline void DtRtiMsgQueue::setGalt(const rti1516::LogicalTime& federateTime)
342 #elif defined(DtIFSPEC1516E)
343 inline void DtRtiMsgQueue::setGalt(const rti1516e::LogicalTime& federateTime)
344 #else
345 inline void DtRtiMsgQueue::setGalt(const RTI::FedTime& federateTime)
346 #endif
347 {
348  *myGalt = federateTime;
349 }
350 
351 inline unsigned int DtRtiMsgQueue::roQueueLength() const
352 {
353  return myRoList.count();
354 }
355 
356 
357 #endif

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)