VR-Link API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
objectPublisherDIS.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #if DtDIS
11 
12 
13 #ifndef DtDISObjectPublisher_H_
14 #define DtDISObjectPublisher_H_
15 
16 
18 #include <vlutil/vlMachineTypes.h>
19 #include "objectId.h"
20 #include <vlutil/vlTime.h>
21 
24 class DT_DLL_VL DtPdu;
25 class DT_DLL_VL DtAttributePdu;
26 class DT_DLL_VL DtPduWithAttributeRecordSets;
27 
28 
35 {
36 public:
37 
40  typedef DtAttributePdu * (*DtNonCoupledAttributePduCreator)(const DtPduWithAttributeRecordSets*, void*);
41 
48  DtStateRepository* stateRep,
49  DtStateRepository* asSeenByRemote,
50  bool okToDeleteStateRep = true);
51 
53  virtual ~DtObjectPublisher();
54 
55 private:
56 
59 
61  DtObjectPublisher& operator= (const DtObjectPublisher& orig);
62 
63 public:
64 
67  virtual DtStateRepository* stateRep();
68 
71  virtual DtStateRepository* sr();
72 
74  virtual DtExerciseConn* exerciseConn();
75 
77  virtual const DtObjectId& localId() const = 0;
79  virtual const DtObjectId& id() const = 0;
81  virtual const DtGlobalObjectDesignator& globalId() const = 0;
82 
84  virtual void forceUpdate()=0;
85 
87  virtual void tick() = 0;
88 
90  virtual void parallelTick();
91 
95  virtual void setTimeThreshold(DtTime time);
97  virtual DtTime timeThreshold() const;
98 
103  virtual DtStateRepository* approximateRemoteStateRep();
104 
107  virtual DtTime lastTimeUpdated() const;
108 
111  virtual DtTime lastSimTimeUpdated() const;
112 
115  virtual void setUseCustomThreshold(bool useCustom);
116 
119  virtual bool useCustomThreshold();
120 
122  virtual void setAttributePduStrategy(DtAttributePduStrategy strat);
123  virtual DtAttributePduStrategy attributePduStrategy() const;
124 
125 public:
126 
131  static void setDfltTimeThreshold(DtTime time);
132 
134  static DtTime dfltTimeThreshold();
135 
136 
138  static DtNonCoupledAttributePduCreator setDefaultNonCoupledAttributePduCreator(DtNonCoupledAttributePduCreator creator);
139  static DtNonCoupledAttributePduCreator defaultNonCoupledAttributePduCreator(void);
140 
142  DtNonCoupledAttributePduCreator setNonCoupledAttributePduCreator(DtNonCoupledAttributePduCreator creator);
143  DtNonCoupledAttributePduCreator nonCoupledAttributePduCreator(void);
144 
145 protected:
146 
147 
149  virtual void send(DtPdu* pdu) const;
150 
151 
152 protected:
153 
154  DtExerciseConn *myExConn;
155  DtStateRepository *myStateRep;
156  DtStateRepository *myAsSeenByRemote;
157  bool myOkToDeleteStateRepFlag;
158  bool myUseCustomThreshold;
159 
160  DtTime myTimeThreshold;
161 
163  mutable DtTime mySimTimeLastUpdate;
164 
166  mutable DtTime myRealTimeLastUpdate;
167 
168  // Publisher instance specific override for non-coupled Attribute PDU creation
169  DtNonCoupledAttributePduCreator myNonCoupledAttributePduCreator;
170 
171  // Default non-coupled Attribute PDU creator
172  static DtNonCoupledAttributePduCreator theDefaultNonCoupledAttributePduCreator;
173 
174  // How we should send attribute PDUs
175  DtAttributePduStrategy myAttributePduStrategy;
176 
177 protected:
178 
179  static DtTime theDfltTimeThreshold;
180 
181 };
182 
184 {
185  return myStateRep;
186 }
187 
189 {
190  return myStateRep;
191 }
192 
194 {
195  return myExConn;
196 }
197 
199 {
200  return myAsSeenByRemote;
201 }
202 
203 #endif //DtObjectPublisher_H_
204 #endif //DtDIS
205 

Document ID: Generated on Mon Apr 8 04:49:21 EDT 2019 from SVN revision 197403
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)