MAK Data Logger API Documentation for DIS
 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
44  DtLgrPublisherInterface(DtLgrHlaSimulationManager& simMgr,
45  DtLgrHlaHandle loggerObjectId, DtLgrHlaHandle loggerClassHandle);
46 #else
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 #endif
143 
144 #if DtHLA
145  // HLA
146 
148  virtual DtHlaObjectWithStateRep* pubHlaObject() = 0;
149 
152  virtual void sendTheseAttrs(const RTI::AttributeHandleSet& attrs, double scale, bool isStatic) = 0;
153 
156  virtual void sendAttributes(const DtStateMsg& msg, double scaling, bool isStatic);
157 
159  virtual bool sendAllNextTick();
160 
163  virtual void setSendAllNextTick(bool yesNo = true);
164 
165 #endif
166 
167  protected:
168 
170 #if DtDIS
172  unsigned char myExConnExerciseId;
173  unsigned char myExerciseId;
174 #endif
175 
176 #if DtHLA
177  DtLgrHlaHandle myLoggerObjectId;
178  DtLgrHlaHandle myLoggerClassHandle;
180  DtLgrHlaSimulationManager& mySimMgr;
181  bool myWaitingForRegionData;
182  bool myStaticRegionFlag;
183  RTI::AttributeHandleSet* myUpdatedAttributes;
185  bool mySendAllNextTick;
186 #endif
187  };
188 
189 }

Document ID: Generated on Tue Aug 1 09:00:26 EDT 2017 from SVN revision 179128
Copyright © 2017 VT MÄK. All Rights Reserved (www.mak.com)