VR-Link API Documentation for HLA 1516
 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 MAK Technologies, Inc
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 class DT_DLL_VL DtStateRepositoryExtensionEncoder;
28 class DT_DLL_VL DtStateRepositoryExtensionDecoder;
29 
30 
37 {
38 public:
39 
42  typedef DtAttributePdu * (*DtNonCoupledAttributePduCreator)(const DtPduWithAttributeRecordSets*, void*);
43 
50  DtStateRepository* stateRep,
51  DtStateRepository* asSeenByRemote,
52  bool okToDeleteStateRep = true);
53 
55  virtual ~DtObjectPublisher();
56 
57 private:
58 
61 
63  DtObjectPublisher& operator= (const DtObjectPublisher& orig);
64 
65 public:
66 
69  virtual DtStateRepository* stateRep();
70 
73  virtual DtStateRepository* sr();
74 
76  virtual DtExerciseConn* exerciseConn();
77 
79  virtual const DtObjectId& localId() const = 0;
81  virtual const DtObjectId& id() const = 0;
83  virtual const DtGlobalObjectDesignator& globalId() const = 0;
84 
86  virtual void forceUpdate()=0;
87 
90  virtual bool tick() = 0;
91 
93  virtual bool parallelTick();
94 
98  virtual void setTimeThreshold(DtTime time);
100  virtual DtTime timeThreshold() const;
101 
104  virtual void setRelLocTimeThreshold( DtTime time );
106  virtual DtTime relLocTimeThreshold() const;
107 
112  virtual DtStateRepository* approximateRemoteStateRep();
113 
116  virtual DtTime lastTimeUpdated() const;
117  virtual DtTime lastTimeAttrUpdated() const;
118 
121  virtual DtTime lastSimTimeUpdated() const;
122 
125  virtual void setUseCustomThreshold(bool useCustom);
126 
129  virtual bool useCustomThreshold();
130 
132  virtual void setAttributePduStrategy(DtAttributePduStrategy strat);
133  virtual DtAttributePduStrategy attributePduStrategy() const;
134 
136  virtual void encodeExtensions(DtStateRepository* stateRep, const DtStateRepository &asSeenByRemote);
137 
140  virtual void decodeExtensions(DtPdu* pdu, const DtStateRepository &stateRep);
141 
144  virtual void setUpdateRateWarningThreshold(unsigned short updatesPerSecond);
145  virtual unsigned short updateRateWarningThreshold() const;
146 
150  virtual void checkForUpdateRateWarning() const;
151 
152 public:
153 
158  static void setDfltTimeThreshold(DtTime time);
159 
161  static DtTime dfltTimeThreshold();
162 
164  static void setDfltUpdateRateWarningThreshold(unsigned short updatesPerSecond);
165 
167  static unsigned short dfltUpdateRateWarningThreshold();
168 
170  static void setDfltRelLocTimeThreshold( DtTime time );
171 
173  static DtTime dfltRelLocTimeThreshold();
174 
176  static DtNonCoupledAttributePduCreator setDefaultNonCoupledAttributePduCreator(DtNonCoupledAttributePduCreator creator);
177  static DtNonCoupledAttributePduCreator defaultNonCoupledAttributePduCreator(void);
178 
180  DtNonCoupledAttributePduCreator setNonCoupledAttributePduCreator(DtNonCoupledAttributePduCreator creator);
181  DtNonCoupledAttributePduCreator nonCoupledAttributePduCreator(void);
182 
183 protected:
184 
185 
187  virtual void send(DtPdu* pdu) const;
188 
189 
190 protected:
191 
192  DtExerciseConn *myExConn;
193  DtStateRepository *myStateRep;
194  DtStateRepository *myAsSeenByRemote;
195  bool myOkToDeleteStateRepFlag;
196  bool myUseCustomThreshold;
197 
199  DtTime myTimeThreshold;
201  DtTime myRelLocTimeThreshold;
202 
204  mutable DtTime mySimTimeLastUpdate;
205 
207  mutable DtTime myRealTimeLastUpdate;
208  mutable DtTime myRealTimeLastAttrUpdate;
209 
211  mutable DtTime myLastSpamCheckTime;
212 
214  mutable unsigned short myNumberOfPdusPerSecond;
215 
217  mutable unsigned short myUpdateRateWarningThreshold;
218 
220  mutable bool myCanWarn;
221 
222  // Publisher instance specific override for non-coupled Attribute PDU creation
223  DtNonCoupledAttributePduCreator myNonCoupledAttributePduCreator;
224 
225  // Default non-coupled Attribute PDU creator
226  static DtNonCoupledAttributePduCreator theDefaultNonCoupledAttributePduCreator;
227 
228  // How we should send attribute PDUs
229  DtAttributePduStrategy myAttributePduStrategy;
230 
231  //List of State Repository Extension Encoders
232  std::vector<DtStateRepositoryExtensionEncoder*> myStateRepositoryExtensionEncoderList;
233 
234  //List of State Repository Extension Decoders
235  std::vector<DtStateRepositoryExtensionDecoder*> myStateRepositoryExtensionDecoderList;
236 
237 protected:
238 
239  static DtTime theDfltTimeThreshold;
240  static DtTime theDfltRelLocTimeThreshold;
241  static unsigned short theDfltUpdateRateWarningThreshold;
242 
243 };
244 
246 {
247  return myStateRep;
248 }
249 
251 {
252  return myStateRep;
253 }
254 
256 {
257  return myExConn;
258 }
259 
261 {
262  return myAsSeenByRemote;
263 }
264 
265 #endif //DtObjectPublisher_H_
266 #endif //DtDIS
267 
Contains the DtObjectId class declaration.
DtStateRepository * myStateRep
Definition: objectPublisherHLA.h:221
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
virtual DtStateRepository * stateRep()
Returns a pointer to the DtStateRepository - through which you can set or inspect current state infor...
Definition: objectPublisherHLA.h:257
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
This file contains the declaration of DtClock and DtTime.
Instances of DtObjectPublisher are used for local or source simulations of objects, (i.e.
Definition: objectPublisherHLA.h:34
virtual DtStateRepository * sr()
Synonym for stateRep().
Definition: objectPublisherHLA.h:262
virtual DtExerciseConn * exerciseConn()
Get our exercise connection.
Definition: objectPublisherHLA.h:267
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
DtAttributePduStrategy
Definition: vlAttributePduStrategy.h:16
DtStateRepository is an abstract base class for maintaining state for an object.
Definition: stateRepository.h:50
DtStateRepository * myAsSeenByRemote
Definition: objectPublisherHLA.h:222
DtObjectId instances are used to represent RTI::ObjectInstances in VR-Link.
Definition: objectId.h:38
DtExerciseConn * myExConn
Definition: objectPublisherHLA.h:219
int send(int s, char *buf, int bufLen, int flags)
MANAGEDINTERFACE_DLL void tick(double maxTime)
Tick ManagedInterface.
Instances of DtString are used to represent strings.
Definition: vlString.h:29
virtual DtStateRepository * approximateRemoteStateRep()
Returns a pointer to the approximate remote DtStateRepository – This state repository contains the co...
Definition: objectPublisherHLA.h:282
This file contains typedefs for machine dependant types.

Document ID: Generated on Thu Sep 19 02:12:35 EDT 2024 from SVN revision 269601
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)