MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrPublisherInterface.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2016 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <lgrSim/lgrSim.h>
12 
13 #include <vlutil/vlTime.h>
14 #if DtHLA
15 #include <vl/region.h>
16 #include <lgrSim/lgrHlaAttribute.h>
17 #endif
18 
19 class DtStateMsg;
20 class DtPdu;
21 
22 #if DtHLA
23 class DtHlaObjectWithStateRep;
24 #endif
25 
26 namespace MAKLogger
27 {
28  class DtAbsoluteTime;
29  class DtPacket;
30 
31 #if DtHLA
32  class DtLgrHlaSimulationManager;
33 #else
34  class DtLgrDisSimulationManager;
35 #endif
36 
40  {
41  public:
42 
43 #if DtHLA
45  DtLgrHlaHandle loggerObjectId, DtLgrHlaHandle loggerClassHandle);
46 #else
47  DtLgrPublisherInterface(DtLgrDisSimulationManager& simMgr);
48 #endif
49 
51  virtual ~DtLgrPublisherInterface();
52 
53  public:
54 
56 #if DtHLA
57  virtual void update(const DtStateMsg& msg, const DtAbsoluteTime& updateTime,
58  bool isTimeFromPast, bool isStateUpdate, double scaling, bool isStatic, bool sendFlag) = 0;
59 #else
60  virtual void update( const DtPdu& pdu, const DtAbsoluteTime& updateTime, bool isTimeFromPast,
61  bool isStateUpdate, double scaling, bool isStatic, bool sendFlag) = 0;
62 #endif
63 
66  virtual DtPacket* createUpdatePacket(const DtAbsoluteTime& time);
67 
69  virtual void sendUpdateAtScaleChangePoint(double oldScale, double newScale,
70  bool wasStatic, bool isStatic) = 0;
71 
73  virtual void tick(double scaling, bool isStatic) = 0;
74 
75 #if DtDIS
76 
77  virtual void setExerciseId(unsigned char exerciseId);
78 
80  virtual unsigned char exerciseId() const;
81 #endif
82 
83 #if DtHLA
84 
90  virtual bool updateRegion(const DtStateMsg& msg);
91 
93  virtual void setRegion(const DtDDMRegionSet& region) = 0;
94 
96  virtual const DtDDMRegionSet& publishingRegions() const = 0;
97 
100  virtual void setStaticRegionFlag(bool enabled);
101 
103  virtual bool staticRegionFlag() const;
104 
107  virtual bool publishingToRegion( DtDDMRegionSP region ) = 0;
108 
112  virtual void setWaitingForRegionData(bool waitForData);
113 
116  virtual bool waitingForRegionData();
117 
119 #if DtHLA_1516
120  virtual void addUpdatedAttributes(const RTI::AttributeHandleValueMap& handleValues);
121 #else
122  virtual void addUpdatedAttributes(const RTI::AttributeHandleValuePairSet& handleValues);
123 #endif
124 
126  virtual const RTI::AttributeHandleSet* updatedAttributes() const;
127 #endif
128 
129  protected:
130 
131 #if DtDIS
132  // Adjust exercise connection exercise ID with publisher's exercise ID,
133  // when Logger configured to use exercise ID of 0
134  virtual void adjustConnectionExerciseId();
135 
136  // Reset exercise connection exercise ID with publisher's exercise ID,
137  // when Logger configured to use exercise ID of 0
138  virtual void resetConnectionExerciseId();
139 
141  virtual const DtStateMsg& lastState() const = 0;
142 
143  //Adjust DtProtocolVersionToSend to match the version recorded in the Logger tape
144  //when Logger is not configured to use DIS version override.
145  virtual void adjustProtocolVersionToSend();
146 
147  //Reset DtProtocolVersionToSend to the default value.
148  virtual void resetProtocolVersionToSend();
149 
150  virtual void setInitialDISVersion(int version);
151 #endif
152 
153 #if DtHLA
154  // HLA
155 
157  virtual DtHlaObjectWithStateRep* pubHlaObject() = 0;
158 
161  virtual void sendTheseAttrs(const RTI::AttributeHandleSet& attrs, double scale, bool isStatic) = 0;
162 
165  virtual void sendAttributes(const DtStateMsg& msg, double scaling, bool isStatic);
166 
168  virtual bool sendAllNextTick();
169 
172  virtual void setSendAllNextTick(bool yesNo = true);
173 
174 #endif
175 
176  protected:
177 
179 #if DtDIS
180  DtLgrDisSimulationManager& mySimMgr;
181  unsigned char myExConnExerciseId;
182  unsigned char myExerciseId;
183  int myInitialDISVersion;
184  int myDefaultDISVersion;
185 #endif
186 
187 #if DtHLA
194  RTI::AttributeHandleSet* myUpdatedAttributes;
197 #endif
198  };
199 
200 }

Document ID: Generated on Thu Jul 23 15:05:27 EDT 2020 from SVN revision 215371
Copyright © 2020 MAK Technologies. All Rights Reserved (www.mak.com)