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-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 
11 #ifndef hlaSimOutput_H_
12 #define hlaSimOutput_H_
13 
14 #if DtHLA
15 
16 #include <lgrSim/lgrSim.h>
17 #include <lgrCore/lgrSimOutput.h>
18 #include <lgrSim/lgrHlaAttribute.h>
20 #include "hlaMessageFactory.h"
21 
22 #include <map>
23 
24 #include <vl/region.h>
25 
26 class DtInteractionFactory;
27 class DtBaseEntityStateRepository;
28 class DtHlaTAFilter;
29 
30 namespace MAKLogger
31 {
32 
33  class DtLgrHlaSimulationManager;
34  class DtLgrPublisherInterface;
35  class DtHLAGenericPublisher;
36  class DtLgrHlaMessageIOInfo;
37  class DtMessageIOInfo;
38  class DtLgrOnlineFomDesc;
39  class DtConstLgrHlaMessage;
40 
44  class DT_DLL_LGRSIM DtLgrHlaSimOutput : public DtLgrSimOutput
45  {
46  public:
47 
48  DT_VIRTUAL_CTR(DtLgrHlaSimOutput, (DtLgrHlaSimulationManager& manager))
49 
50  virtual ~DtLgrHlaSimOutput();
51 
52  virtual DtLgrSimOutput::PacketSenderType packetSenderType(const DtPacket&) const;
53 
55  virtual void disconnecting();
56 
57  virtual void activateImplementation();
58  virtual void deactivateImplementation();
59 
61  virtual void flush();
62 
63  virtual const DtMessageIOInfo* info() const;
64 
66  virtual void setOutputScaling(double scaling, bool enableStatic);
67 
69  virtual double getOutputScaling();
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 
109 
110 
111 
112  bool cacheInteractionRegionsEnabled() const;
113  void setCacheInteractionRegionsEnabled(bool val);
115 
117 
118 
119  bool cacheObjectRegionsEnabled() const;
120  void setCacheObjectRegionsEnabled(bool val);
122 
123  public:
127  static void encodeIsPartOf_RPR_20014( const DtBaseEntityStateRepository& stateRep,
128  RTI::AttributeHandleValuePairSet* pAvList,
129  RTI::AttributeHandle attrHandle );
130 
131  protected:
132 
134  const DtLgrOnlineFomDesc& fom() const;
135 
137  virtual void immediateSend(const DtPacket&) const;
138 
140  virtual void sendInteractionWithRegion(const DtInteraction& interaction, const DtDDMRegionSet& regionSet) const;
141 
143  virtual void retainedSend(const DtPacket&);
144 
146  virtual void updateEntity(const DtPacket&);
147 
149  virtual void removeEntity(const DtPacket&);
150 
152  virtual void tick();
153 
155  virtual DtLgrPublisherInterface* createPublisher(const DtPacket& info);
156 
159  virtual DtLgrPublisherInterface* doPublish(RTI::ObjectClassHandle classHandle,
160  const char* objName, const DtDDMRegionSet* regionSetToUse, bool silent);
161 
163  virtual void printRegion(DtDDMRegionSP region) const;
164 
165  protected:
166 
168  typedef std::map<DtString,DtLgrHlaHandle> DtObjectNameMap;
169  typedef std::map<DtLgrHlaHandle,DtLgrPublisherInterface*> DtObjectPublisherMap;
170 
171  DtLgrHlaSimulationManager& myHlaManager;
172  DtObjectNameMap myObjectNameMap;
173  DtObjectPublisherMap myObjectPublisherMap;
174  DtLgrHlaMessageIOInfo* myMessageInfo;
175  double myPublisherScaling;
176  bool myPublisherStatic;
177  DtInteractionFactory* myFactory;
178  DtIDRegionMap myRegionHandleMap;
179  bool myCacheInteractionRegionsEnabled;
180  bool myCacheObjectRegionsEnabled;
181 
182  std::set<DtLgrPublisherInterface*> myFilteredPublishers;
183  };
184 
185 }
186 
187 #endif
188 #endif

Document ID: Generated on Thu Apr 7 20:50:59 EDT 2016 from SVN revision 163818
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)