MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
hlaSimOutput.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2016 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 
11 #pragma once
12 
13 #if DtHLA
14 
15 #include <lgrSim/lgrSim.h>
16 #include <lgrCore/lgrSimOutput.h>
17 #include <lgrSim/lgrHlaAttribute.h>
19 #include "hlaMessageFactory.h"
20 
21 #include <map>
22 
23 #include <vl/region.h>
24 
25 class DtInteractionFactory;
26 class DtBaseEntityStateRepository;
27 class DtHlaTAFilter;
28 
29 namespace MAKLogger
30 {
31 
32  class DtLgrHlaSimulationManager;
33  class DtLgrPublisherInterface;
34  class DtHLAGenericPublisher;
35  class DtLgrHlaMessageIOInfo;
36  class DtMessageIOInfo;
37  class DtLgrOnlineFomDesc;
38  class DtConstLgrHlaMessage;
39 
43  class DT_DLL_LGRSIM DtLgrHlaSimOutput : public DtLgrSimOutput
44  {
45  public:
46 
47  DT_VIRTUAL_CTR(DtLgrHlaSimOutput, (DtLgrHlaSimulationManager& manager))
48 
49  virtual ~DtLgrHlaSimOutput();
50 
51  virtual DtLgrSimOutput::PacketSenderType packetSenderType(const DtPacket&) const;
52 
54  virtual void disconnecting();
55 
56  virtual void activateImplementation();
57  virtual void deactivateImplementation();
58 
60  virtual void flush();
61 
62  virtual const DtMessageIOInfo* info() const;
63 
65  virtual void setOutputScaling(double scaling, bool enableStatic, bool isPaused=false);
66 
70 
72  virtual void filterMessage(DtPacket* packet);
73 
76  virtual bool applyTrafficAnalyzerFilter(DtHLAGenericPublisher& genPub);
77 
79  virtual void removeEntity(const DtLgrHlaHandle handle);
80 
83  virtual unsigned int getInteractionConveyedRegionSet(const DtConstLgrHlaMessage& info, DtDDMRegionSet& regionSet);
84 
87  virtual unsigned int getInteractionRegionSetFromData(const DtConstLgrHlaMessage& info,
88  const DtInteraction* interaction, DtDDMRegionSet& regionSet);
89 
92  virtual unsigned int getInteractionRegionSet(const DtConstLgrHlaMessage& info,
93  DtInteraction* interaction, DtDDMRegionSet& regionSet);
94 
100  virtual bool getPublisherRegionSetFromData(const DtPacket& info,
101  DtDDMRegionSet& regionSet);
102 
105  virtual unsigned int getObjectConveyedRegionSet(const DtConstLgrHlaMessage& info, DtDDMRegionSet& regionSet);
106 
108  bool cacheInteractionRegionsEnabled() const;
113  void setCacheInteractionRegionsEnabled(bool val);
115 
117  bool cacheObjectRegionsEnabled() const;
120  void setCacheObjectRegionsEnabled(bool val);
122 
124 
125  virtual void setExConnSimTime(DtTime time);
126  virtual DtTime exConnSimTime() const;
128 
130  virtual DtExerciseConn* exerciseConn();
131 
133  virtual const DtExerciseConn* exerciseConn() const;
134 
135  public:
139  static void encodeIsPartOf_RPR_20014( const DtBaseEntityStateRepository& stateRep,
140  RTI::AttributeHandleValuePairSet* pAvList,
141  RTI::AttributeHandle attrHandle );
142 
143  protected:
144 
146  virtual void retainedSend(const DtPacket&);
147 
149  virtual void immediateSend(const DtPacket&) const;
150 
152  const DtLgrOnlineFomDesc& fom() const;
153 
155  virtual void sendInteractionWithRegion(const DtInteraction& interaction, const DtDDMRegionSet& regionSet) const;
156 
158  virtual void updateEntity(const DtPacket&);
159 
161  virtual void removeEntity(const DtPacket&);
162 
164  virtual void tick();
165 
167  virtual void clearPublishers();
168 
170  virtual void getUpdates(DtMessageBuffer& stateBuffer, const DtAbsoluteTime& time);
171 
173  virtual DtLgrPublisherInterface* createPublisher(const DtPacket& info);
174 
177  virtual DtLgrPublisherInterface* doPublish(DtLgrHlaHandle loggerObjectId,
178  DtLgrHlaHandle loggerClassHandle, RTI::ObjectClassHandle classHandle,
179  const char* objName, const DtDDMRegionSet* regionSetToUse, bool silent);
180 
182  virtual void printRegion(DtDDMRegionSP region) const;
183 
184  protected:
185 
187  typedef std::map<DtString,DtLgrHlaHandle> DtObjectNameMap;
188  typedef std::map<DtLgrHlaHandle,DtLgrPublisherInterface*> DtObjectPublisherMap;
189 
190  DtLgrHlaSimulationManager& myHlaManager;
191  DtObjectNameMap myObjectNameMap;
192  DtObjectPublisherMap myObjectPublisherMap;
193  DtLgrHlaMessageIOInfo* myMessageInfo;
194  double myPublisherScaling;
195  bool myPublisherStatic;
196  bool myIsPaused;
197  DtInteractionFactory* myFactory;
198  DtIDRegionMap myRegionHandleMap;
199  bool myCacheInteractionRegionsEnabled;
200  bool myCacheObjectRegionsEnabled;
201 
202  std::set<DtLgrPublisherInterface*> myFilteredPublishers;
203  };
204 
205 }
206 
207 #endif
208 
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
#define DT_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where CLASS_NAME...
Definition: virtualConstructor.h:34
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
Definition: hlaTAFilter.h:15
virtual void setOutputScaling(double scale)
Set/Get the output scaling.
Contains MAKLogger::DtLgrHlaHandle typedef and MAKLogger::DtLgrValueReference and MAKLogger::DtLgrVal...
Contains MAKLogger::DtLgrHlaMessageFactory class.
PacketSenderType
Definition: lgrSimOutput.h:72
class DT_DLL_LGRUTIL DtAbsoluteTime
Definition: absoluteTime.h:22
Contains MAKLogger::DtLgrSimOutput subclass of MAKLogger::DtMessageOutput.

Document ID: Generated on Mon Mar 22 15:30:17 EDT 2021 from SVN revision 226440
Copyright © 2021 MAK Technologies. All Rights Reserved (www.mak.com)