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 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 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 
89  virtual void tick() = 0;
90 
92  virtual void parallelTick();
93 
97  virtual void setTimeThreshold(DtTime time);
99  virtual DtTime timeThreshold() const;
100 
103  virtual void setRelLocTimeThreshold( DtTime time );
105  virtual DtTime relLocTimeThreshold() const;
106 
111  virtual DtStateRepository* approximateRemoteStateRep();
112 
115  virtual DtTime lastTimeUpdated() const;
116  virtual DtTime lastTimeAttrUpdated() const;
117 
120  virtual DtTime lastSimTimeUpdated() const;
121 
124  virtual void setUseCustomThreshold(bool useCustom);
125 
128  virtual bool useCustomThreshold();
129 
131  virtual void setAttributePduStrategy(DtAttributePduStrategy strat);
132  virtual DtAttributePduStrategy attributePduStrategy() const;
133 
135  virtual void encodeExtensions(DtStateRepository* stateRep, const DtStateRepository &asSeenByRemote);
136 
139  virtual void decodeExtensions(DtPdu* pdu, const DtStateRepository &stateRep);
140 
141 public:
142 
147  static void setDfltTimeThreshold(DtTime time);
148 
150  static DtTime dfltTimeThreshold();
151 
153  static void setDfltRelLocTimeThreshold( DtTime time );
154 
156  static DtTime dfltRelLocTimeThreshold();
157 
159  static DtNonCoupledAttributePduCreator setDefaultNonCoupledAttributePduCreator(DtNonCoupledAttributePduCreator creator);
160  static DtNonCoupledAttributePduCreator defaultNonCoupledAttributePduCreator(void);
161 
163  DtNonCoupledAttributePduCreator setNonCoupledAttributePduCreator(DtNonCoupledAttributePduCreator creator);
164  DtNonCoupledAttributePduCreator nonCoupledAttributePduCreator(void);
165 
166 protected:
167 
168 
170  virtual void send(DtPdu* pdu) const;
171 
172 
173 protected:
174 
175  DtExerciseConn *myExConn;
176  DtStateRepository *myStateRep;
177  DtStateRepository *myAsSeenByRemote;
178  bool myOkToDeleteStateRepFlag;
179  bool myUseCustomThreshold;
180 
182  DtTime myTimeThreshold;
184  DtTime myRelLocTimeThreshold;
185 
187  mutable DtTime mySimTimeLastUpdate;
188 
190  mutable DtTime myRealTimeLastUpdate;
191  mutable DtTime myRealTimeLastAttrUpdate;
192 
193  // Publisher instance specific override for non-coupled Attribute PDU creation
194  DtNonCoupledAttributePduCreator myNonCoupledAttributePduCreator;
195 
196  // Default non-coupled Attribute PDU creator
197  static DtNonCoupledAttributePduCreator theDefaultNonCoupledAttributePduCreator;
198 
199  // How we should send attribute PDUs
200  DtAttributePduStrategy myAttributePduStrategy;
201 
202  //List of State Repository Extension Encoders
203  std::vector<DtStateRepositoryExtensionEncoder*> myStateRepositoryExtensionEncoderList;
204 
205  //List of State Repository Extension Decoders
206  std::vector<DtStateRepositoryExtensionDecoder*> myStateRepositoryExtensionDecoderList;
207 
208 protected:
209 
210  static DtTime theDfltTimeThreshold;
211  static DtTime theDfltRelLocTimeThreshold;
212 
213 };
214 
216 {
217  return myStateRep;
218 }
219 
221 {
222  return myStateRep;
223 }
224 
226 {
227  return myExConn;
228 }
229 
231 {
232  return myAsSeenByRemote;
233 }
234 
235 #endif //DtObjectPublisher_H_
236 #endif //DtDIS
237 
Contains the DtObjectId class declaration.
DtStateRepository * myStateRep
Definition: objectPublisherHLA.h:202
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:60
virtual DtStateRepository * stateRep()
Returns a pointer to the DtStateRepository - through which you can set or inspect current state infor...
Definition: objectPublisherHLA.h:227
#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:232
virtual DtExerciseConn * exerciseConn()
Get our exercise connection.
Definition: objectPublisherHLA.h:237
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:203
DtObjectId instances are used to represent RTI::ObjectInstances in VR-Link.
Definition: objectId.h:38
DtExerciseConn * myExConn
Definition: objectPublisherHLA.h:200
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:252
This file contains typedefs for machine dependant types.

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)