MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
timeInfoList.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2001 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: timeInfoList.h,v $ $Revision: 1.4 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtTimeInfoList_H_
13 #define DtTimeInfoList_H_
14 
15 #ifdef DtTIME
16 
17 #include <vlutil/vlHashlist.h>
18 #include "sortedList.h"
19 #include "internalTypes.h"
20 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
21 #include "RTI/LogicalTime.h"
22 #include "RTI/LogicalTimeInterval.h"
23 #else
24 #include "RTI.hh"
25 #endif
26 
28 
32 
33 class DtTimeInfo;
34 
35 enum DtTimeInfoSort
36 {
37  DtTimeInfoSortTime,
38  DtTimeInfoSortLookahead,
39  DtTimeInfoSortLbts,
40  DtTimeInfoSortNer
41 };
42 
45 class DT_DLL_EXEC DtTimeInfoItem : public DtSortedListItem
46 {
47 public:
48 
49  friend class DtTimeInfoList;
50 
51 public:
52 
54  virtual ~DtTimeInfoItem();
55 
57  virtual bool operator<= (const DtSortedListItem& item) const;
58  virtual bool operator< (const DtSortedListItem& item) const;
59  virtual bool operator>= (const DtSortedListItem& item) const;
60  virtual bool operator> (const DtSortedListItem& item) const;
61  virtual bool operator== (const DtSortedListItem& item) const;
62 
64  virtual DtTimeInfo* timeInfo();
65 
67  virtual void printData();
68 
69 protected:
70 
72  DtTimeInfoItem(void* data, DtTimeInfoSort sortField=DtTimeInfoSortLbts);
73 
74 protected:
75  DtTimeInfo* myInfo;
76  DtTimeInfoSort mySortField;
77 };
78 
79 inline DtTimeInfo* DtTimeInfoItem::timeInfo()
80 {
81  return myInfo;
82 }
83 
84 class DT_DLL_EXEC DtTimeInfoList : public DtSortedList
85 {
86 
87 public:
88  DtTimeInfoList(DtTimeInfoSort sortFieldValue=DtTimeInfoSortLbts);
89 
90  virtual ~DtTimeInfoList();
91 
92 private:
93 
95  DtTimeInfoList(const DtTimeInfoList& orig);
96  DtTimeInfoList& operator=(DtTimeInfoList const& orig);
97 
98 public:
100  virtual DtTimeInfoItem* add(DtTimeInfo* info);
101 
104  virtual void removeAll();
105 
107  virtual DtTimeInfo* removeByHandle(DtFederateHandle federateHandle);
108 
110  virtual void deleteByHandle(DtFederateHandle federateHandle);
111 
113  virtual DtTimeInfo* lookupByHandle(DtFederateHandle federateHandle) const;
114 
116 #ifdef DtIFSPEC1516
117  virtual void adjustTime(DtFederateHandle federateHandle,
118  rti1516::LogicalTime const & time);
119 #elif defined(DtIFSPEC1516E)
120  virtual void adjustTime(DtFederateHandle federateHandle,
121  rti1516e::LogicalTime const & time);
122 #else
123  virtual void adjustTime(DtFederateHandle federateHandle,
124  RTI::FedTime const & time);
125 #endif
126 
128 #ifdef DtIFSPEC1516
129  virtual void adjustLookahead(DtFederateHandle federateHandle,
130  rti1516::LogicalTimeInterval const & lookahead);
131 #elif defined(DtIFSPEC1516E)
132  virtual void adjustLookahead(DtFederateHandle federateHandle,
133  rti1516e::LogicalTimeInterval const & lookahead);
134 #else
135  virtual void adjustLookahead(DtFederateHandle federateHandle,
136  RTI::FedTime const & lookahead);
137 #endif
138 
140 #ifdef DtIFSPEC1516
141  virtual void adjust(DtFederateHandle federateHandle,
142  rti1516::LogicalTime const & time,
143  rti1516::LogicalTimeInterval const & lookahead);
144 #elif defined(DtIFSPEC1516E)
145  virtual void adjust(DtFederateHandle federateHandle,
146  rti1516e::LogicalTime const & time,
147  rti1516e::LogicalTimeInterval const & lookahead);
148 #else
149  virtual void adjust(DtFederateHandle federateHandle,
150  RTI::FedTime const & time, RTI::FedTime const & lookahead);
151 #endif
152 
154  virtual void adjust(const DtTimeInfo* info);
155 
157 #ifdef DtIFSPEC1516
158  virtual void adjustNerTime(DtFederateHandle federateHandle,
159  rti1516::LogicalTime const & time);
160 #elif defined(DtIFSPEC1516E)
161  virtual void adjustNerTime(DtFederateHandle federateHandle,
162  rti1516e::LogicalTime const & time);
163 #else
164  virtual void adjustNerTime(DtFederateHandle federateHandle,
165  RTI::FedTime const & time);
166 #endif
167 
169 #ifdef DtIFSPEC1516
170  virtual void adjustNerLookahead(DtFederateHandle federateHandle,
171  rti1516::LogicalTimeInterval const & lookahead);
172 #elif defined(DtIFSPEC1516E)
173  virtual void adjustNerLookahead(DtFederateHandle federateHandle,
174  rti1516e::LogicalTimeInterval const & lookahead);
175 #else
176  virtual void adjustNerLookahead(DtFederateHandle federateHandle,
177  RTI::FedTime const & lookahead);
178 #endif
179 
181 #ifdef DtIFSPEC1516
182  virtual void adjustNer(DtFederateHandle federateHandle,
183  rti1516::LogicalTime const & time,
184  rti1516::LogicalTimeInterval const & lookahead);
185 #elif defined(DtIFSPEC1516E)
186  virtual void adjustNer(DtFederateHandle federateHandle,
187  rti1516e::LogicalTime const & time,
188  rti1516e::LogicalTimeInterval const & lookahead);
189 #else
190  virtual void adjustNer(DtFederateHandle federateHandle,
191  RTI::FedTime const & time, RTI::FedTime const & lookahead);
192 #endif
193 
197  virtual DtTimeInfoItem* firstTimeItem() const;
198  virtual DtTimeInfoItem* secondTimeItem() const;
199  virtual DtTimeInfoItem* lastTimeItem() const;
200 
204  virtual DtTimeInfo* minInfo(DtFederateHandle handle=0) const;
205  virtual DtTimeInfo* maxInfo(DtFederateHandle handle=0) const;
206 
208  virtual DtTimeInfo* secondInfo() const;
209 
211  virtual void printData();
212 
213 protected:
214 
216  virtual DtSortedListItem* add(void* data);
217 
225  virtual void* remove(DtSortedListItem* item);
226 
229  virtual DtSortedListItem* newItem(void* data);
230 
232  virtual DtTimeInfoItem* lookupItem(DtFederateHandle federateHandle);
233 
234 
235 protected:
236 
237  DtSortedListItem* mySecond;
238  MAKRti::DtHashList myFederateIndexList;
239  DtTimeInfoSort mySortField;
240 };
241 
242 inline DtTimeInfoItem* DtTimeInfoList::firstTimeItem() const
243 {
244  return (DtTimeInfoItem*)first();
245 }
246 
247 inline DtTimeInfoItem* DtTimeInfoList::secondTimeItem() const
248 {
249  return (DtTimeInfoItem*)(first() ? first()->next() : NULL);
250 }
251 
252 inline DtTimeInfoItem* DtTimeInfoList::lastTimeItem() const
253 {
254  return (DtTimeInfoItem*)last();
255 }
256 
257 #endif
258 #endif

Document ID: Generated on Mon Mar 21 09:41:37 EDT 2016 from SVN revision 163228
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)