MAK Data Logger API Documentation for HLA
 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 
44  {
45  public:
46 
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 
197  DtInteractionFactory* myFactory;
201 
202  std::set<DtLgrPublisherInterface*> myFilteredPublishers;
203  };
204 
205 }
206 
207 #endif
208 
bool myCacheObjectRegionsEnabled
Definition: hlaSimOutput.h:200
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
DtU32 DtLgrHlaHandle
Logger Psuedo Handle type.
Definition: hlaTimeStampedAttr.h:22
bool myCacheInteractionRegionsEnabled
Definition: hlaSimOutput.h:199
DtLgrHlaMessageIOInfo * myMessageInfo
Definition: hlaSimOutput.h:193
#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
A generic HLA publisher.
Definition: hlaGenericPublisher.h:30
Hla specific simulation output responsible for sending messages converted from packets.
Definition: hlaSimOutput.h:43
Definition: hlaPacket.h:75
An online fom description that has access to the RTI Ambassidor.
Definition: onlineFomDesc.h:34
DtLgrHlaSimulationManager & myHlaManager
Definition: hlaSimOutput.h:190
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...
Message buffer class responsible for storing a list of messages and iterating through that list...
Definition: messageBuffer.h:23
The HLA simulation manager.
Definition: lgrHlaSimManager.h:84
Definition: hlaMessageIOInfo.h:25
Contains MAKLogger::DtLgrHlaMessageFactory class.
std::map< DtRegionID, DtDDMRegionSP > DtIDRegionMap
Definition: hlaMessageFactory.h:47
std::map< DtLgrHlaHandle, DtLgrPublisherInterface * > DtObjectPublisherMap
Definition: hlaSimOutput.h:188
Responsible for defining the interface that Object publishers must have.
Definition: lgrPublisherInterface.h:39
std::map< DtString, DtLgrHlaHandle > DtObjectNameMap
Map of named handles,.
Definition: hlaSimOutput.h:187
A message IO info object stores information about a specific message input or output stage...
Definition: messageIoInfo.h:21
DtObjectPublisherMap myObjectPublisherMap
Definition: hlaSimOutput.h:192
std::set< DtLgrPublisherInterface * > myFilteredPublishers
Definition: hlaSimOutput.h:202
DtInteractionFactory * myFactory
Definition: hlaSimOutput.h:197
A generic packed of typed binary data.
Definition: packet.h:41
class DT_DLL_MATREX_TSPI_FOM_MAP DtInteraction
Definition: matrexTspiTagModifier.h:20
double myPublisherScaling
Definition: hlaSimOutput.h:194
PacketSenderType
Definition: lgrSimOutput.h:72
The abstract interface which defines the output to a simulation.
Definition: lgrSimOutput.h:26
DtObjectNameMap myObjectNameMap
Definition: hlaSimOutput.h:191
DtIDRegionMap myRegionHandleMap
Definition: hlaSimOutput.h:198
bool myPublisherStatic
Definition: hlaSimOutput.h:195
Contains MAKLogger::DtLgrSimOutput subclass of MAKLogger::DtMessageOutput.
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
bool myIsPaused
Definition: hlaSimOutput.h:196

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)