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 <sortedList.h>
18 #include <internalTypes.h>
19 #include <rtiApiTypes.h>
20 
21 #include <vlutil/vlHashlist.h>
22 
24 
28 
29 class DtTimeInfo;
30 
31 enum DtTimeInfoSort
32 {
33  DtTimeInfoSortTime,
34  DtTimeInfoSortLookahead,
35  DtTimeInfoSortLbts,
36  DtTimeInfoSortNer
37 };
38 
41 class DT_DLL_EXEC DtTimeInfoItem : public DtSortedListItem
42 {
43 public:
44 
45  friend class DtTimeInfoList;
46 
47 public:
48 
50  virtual ~DtTimeInfoItem();
51 
53  virtual bool operator<= (const DtSortedListItem& item) const;
54  virtual bool operator< (const DtSortedListItem& item) const;
55  virtual bool operator>= (const DtSortedListItem& item) const;
56  virtual bool operator> (const DtSortedListItem& item) const;
57  virtual bool operator== (const DtSortedListItem& item) const;
58 
60  virtual DtTimeInfo* timeInfo();
61 
63  virtual void printData(bool longFormat=true, bool lbtsValues=true);
64 
65 protected:
66 
68  DtTimeInfoItem(void* data, DtTimeInfoSort sortField=DtTimeInfoSortLbts);
69 
70 protected:
71  DtTimeInfo* myInfo;
72  DtTimeInfoSort mySortField;
73 };
74 
75 inline DtTimeInfo* DtTimeInfoItem::timeInfo()
76 {
77  return myInfo;
78 }
79 
80 class DT_DLL_EXEC DtTimeInfoList : public DtSortedList
81 {
82 
83 public:
84  DtTimeInfoList(DtTimeInfoSort sortFieldValue=DtTimeInfoSortLbts);
85 
86  virtual ~DtTimeInfoList();
87 
88 private:
89 
91  DtTimeInfoList(const DtTimeInfoList& orig);
92  DtTimeInfoList& operator=(DtTimeInfoList const& orig);
93 
94 public:
96  virtual DtTimeInfoItem* add(DtTimeInfo* info);
97 
100  virtual void removeAll();
101 
103  virtual DtTimeInfo* removeByHandle(DtFederateHandle federateHandle);
104 
106  virtual void deleteByHandle(DtFederateHandle federateHandle);
107 
109  virtual DtTimeInfo* lookupByHandle(DtFederateHandle federateHandle) const;
110 
112  virtual void adjustTime(DtFederateHandle federateHandle,
113  DtRtiApiTime const & time);
114 
116  virtual void adjustLookahead(DtFederateHandle federateHandle,
117  DtRtiApiTimeInterval const & lookahead);
118 
120  virtual void adjust(DtFederateHandle federateHandle,
121  DtRtiApiTime const & time,
122  DtRtiApiTimeInterval const & lookahead);
123 
125  virtual void adjust(const DtTimeInfo* info);
126 
128  virtual void adjustNerTime(DtFederateHandle federateHandle,
129  DtRtiApiTime const & time);
130 
132  virtual void adjustNerLookahead(DtFederateHandle federateHandle,
133  DtRtiApiTimeInterval const & lookahead);
134 
136  virtual void adjustNer(DtFederateHandle federateHandle,
137  DtRtiApiTime const & time,
138  DtRtiApiTimeInterval const & lookahead);
139 
143  virtual DtTimeInfoItem* firstTimeItem() const;
144  virtual DtTimeInfoItem* secondTimeItem() const;
145  virtual DtTimeInfoItem* lastTimeItem() const;
146 
150  virtual DtTimeInfo* minInfo(DtFederateHandle handle=0) const;
151  virtual DtTimeInfo* maxInfo(DtFederateHandle handle=0) const;
152 
154  virtual DtTimeInfo* secondInfo() const;
155 
157  virtual void printData(const char* label = 0, bool longFormat = true, bool lbtsValues = true);
158 
159 protected:
160 
162  virtual DtSortedListItem* add(void* data);
163 
171  virtual void* remove(DtSortedListItem* item);
172 
175  virtual DtSortedListItem* newItem(void* data);
176 
178  virtual DtTimeInfoItem* lookupItem(DtFederateHandle federateHandle);
179 
180 
181 protected:
182 
183  DtSortedListItem* mySecond;
184  MAKRti::DtHashList myFederateIndexList;
185  DtTimeInfoSort mySortField;
186 };
187 
188 inline DtTimeInfoItem* DtTimeInfoList::firstTimeItem() const
189 {
190  return (DtTimeInfoItem*)first();
191 }
192 
193 inline DtTimeInfoItem* DtTimeInfoList::secondTimeItem() const
194 {
195  return (DtTimeInfoItem*)(first() ? first()->next() : NULL);
196 }
197 
198 inline DtTimeInfoItem* DtTimeInfoList::lastTimeItem() const
199 {
200  return (DtTimeInfoItem*)last();
201 }
202 
203 #endif
204 #endif
virtual bool operator<(const DtSortedListItem &) const
virtual void removeAll()
Calls remove for all elements in the list.
virtual void printData(DtSortOrder order=DtSortOrderAscending)
Print the list.
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. ...
RTI_API::LogicalTime DtRtiApiTime
Typedefs for RTI API types that frequently require conditional precompile directives.
Definition: rtiApiTypes.h:91
DtSortedListItem is an envelope class used by DtSortedList.
Definition: sortedList.h:24
virtual bool operator==(const DtSortedListItem &) const
#define NULL
Definition: baseTypes13.h:8
DtHandle DtFederateHandle
Definition: internalTypes.h:46
virtual DtSortedListItem * add(void *data)
Add element to the list in sorted order.
DtSortedList & operator=(const DtSortedList &orig)
Assignment operator.
virtual bool operator>(const DtSortedListItem &) const
virtual bool operator<=(const DtSortedListItem &) const
Comparison operators for sorting.
RTI_API::LogicalTimeInterval DtRtiApiTimeInterval
Definition: rtiApiTypes.h:92
The declaration of internal types.
A DtSortedList is a list of elements of arbitrary type.
Definition: sortedList.h:98
virtual bool operator>=(const DtSortedListItem &) const
#define DT_DLL_EXEC
Definition: rtiMsConfig.h:152

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)