MAK RTIspy API Documentation for HLA Evolved
retractList.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2001 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: retractList.h,v $ $Revision: 1.17 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtRetractInfoList_H_
13 #define DtRetractInfoList_H_
14 
15 #include "rtiMsConfig.h"
16 #include <memory>
17 #include <vlutil/vlHashlist.h>
18 #include "sortedList.h"
19 
20 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
21 #include <RTI/RTI1516.h>
22 #else
23 #ifdef DtIFSPEC13DLC
24 #include "RTI13.h"
25 #define RTI rti13
26 #else
27 #include "RTI.hh"
28 #endif
29 #endif
30 
32 
33 class DtRtiMsg;
35 
39 {
40 public:
41 
43 #ifdef DtIFSPEC1516
44  DtRetractInfo(unsigned long value,
45  std::auto_ptr <rti1516::LogicalTime> timePtr);
46 #elif defined(DtIFSPEC1516E)
47  DtRetractInfo(unsigned long value,
48  std::auto_ptr <rti1516e::LogicalTime> timePtr);
49 #else
50  DtRetractInfo(unsigned long value, std::auto_ptr <RTI::FedTime> timePtr);
51 #endif
52 
54  virtual ~DtRetractInfo();
55 
57 #ifdef DtIFSPEC1516
58  virtual void setTime(rti1516::LogicalTime const & timeVal);
59  virtual rti1516::LogicalTime const & time() const;
60 #elif defined(DtIFSPEC1516E)
61  virtual void setTime(rti1516e::LogicalTime const & timeVal);
62  virtual rti1516e::LogicalTime const & time() const;
63 #else
64  virtual void setTime(RTI::FedTime const & timeVal);
65  virtual RTI::FedTime const & time() const;
66 #endif
67 
69  unsigned long serialNumber();
70  void setSerialNumber(unsigned long value);
71 
72 protected:
73  explicit DtRetractInfo();
74 
75 protected:
76 #ifdef DtIFSPEC1516
77  std::auto_ptr <rti1516::LogicalTime> myTime;
78 #elif defined(DtIFSPEC1516E)
79  std::auto_ptr <rti1516e::LogicalTime> myTime;
80 #else
81  std::auto_ptr <RTI::FedTime> myTime;
82 #endif
83  unsigned long mySerialNumber;
84 };
85 
86 #ifdef DtIFSPEC1516
87 inline rti1516::LogicalTime const & DtRetractInfo::time() const
88 {return *myTime;}
89 inline void DtRetractInfo::setTime(rti1516::LogicalTime const & timeVal)
90 {*myTime = timeVal;}
91 #elif defined(DtIFSPEC1516E)
92 inline rti1516e::LogicalTime const & DtRetractInfo::time() const
93 {return *myTime;}
94 inline void DtRetractInfo::setTime(rti1516e::LogicalTime const & timeVal)
95 {*myTime = timeVal;}
96 #else
97 inline RTI::FedTime const & DtRetractInfo::time() const
98 {return *myTime;}
99 inline void DtRetractInfo::setTime(RTI::FedTime const & timeVal)
100 {*myTime = timeVal;}
101 #endif
102 inline unsigned long DtRetractInfo::serialNumber()
103 {return mySerialNumber;}
104 inline void DtRetractInfo::setSerialNumber(unsigned long value)
105 {mySerialNumber = value;}
106 
107 
111 {
112 public:
113 
114  friend class DtRetractInfoList;
115 
116 public:
117 
119  virtual ~DtRetractInfoItem();
120 
122  virtual bool operator<= (const DtSortedListItem& item) const;
123  virtual bool operator< (const DtSortedListItem& item) const;
124  virtual bool operator>= (const DtSortedListItem& item) const;
125  virtual bool operator> (const DtSortedListItem& item) const;
126  virtual bool operator== (const DtSortedListItem& item) const;
127 
129  virtual DtRetractInfo* retractInfo();
130 
132  virtual void printData();
133 
134 protected:
135 
137  DtRetractInfoItem(void* data);
138 
139 protected:
141 };
142 
144 {
145  return myInfo;
146 }
147 
149 {
150 
151 public:
152  DtRetractInfoList(DtLogicalTimeFactory* logicalTimeFactory);
153 
154  virtual ~DtRetractInfoList();
155 
157  virtual DtRetractInfoItem* add(DtRetractInfo* info);
158 
160  virtual DtRetractInfoItem* add(const DtRtiMsg& msg);
161 
164  virtual void removeAll();
165 
167 #ifdef DtIFSPEC1516
168  virtual void deleteAll(rti1516::LogicalTime const & time);
169 #elif defined(DtIFSPEC1516E)
170  virtual void deleteAll(rti1516e::LogicalTime const & time);
171 #else
172  virtual void deleteAll(RTI::FedTime const & time);
173 #endif
174 
176  virtual DtRetractInfo* removeByNumber(unsigned long serialNumber);
177 
179  virtual void deleteByNumber(unsigned long serialNumber);
180 
182  virtual DtRetractInfo* lookupByNumber(unsigned long serialNumber);
183 
187  virtual DtRetractInfoItem* firstRetractItem() const;
188  virtual DtRetractInfoItem* lastRetractItem() const;
189 
193 #ifdef DtIFSPEC1516
194  virtual DtRetractInfo* minRetraction(rti1516::LogicalTime const & lower,
195  rti1516::LogicalTime const & upper, bool includeLower) const;
196 #elif defined(DtIFSPEC1516E)
197  virtual DtRetractInfo* minRetraction(rti1516e::LogicalTime const & lower,
198  rti1516e::LogicalTime const & upper, bool includeLower) const;
199 #else
200  virtual DtRetractInfo* minRetraction(RTI::FedTime const & lower,
201  RTI::FedTime const & upper, bool includeLower) const;
202 #endif
203 
204 protected:
205 
207  virtual DtSortedListItem* add(void* data);
208 
216  virtual void* remove(DtSortedListItem* item);
217 
220  virtual DtSortedListItem* newItem(void* data);
221 
223  virtual DtRetractInfoItem* lookupItem(unsigned long serialNumber);
224 
228 protected:
229 
230  MAKRti::DtHashlist mySerialIndexList;
232 };
233 
235 {
236  return (DtRetractInfoItem*)first();
237 }
238 
240 {
241  return (DtRetractInfoItem*)last();
242 }
243 
244 #endif

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)