MAK Data Logger API Documentation for DIS
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.h"
17 #include "lgrSimOutput.h"
18 #include "lgrHlaAttribute.h"
19 #include "virtualConstructor.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 void filterMessage(DtPacket* packet);
70 
73  virtual bool applyTrafficAnalyzerFilter(DtHLAGenericPublisher& genPub);
74 
76  virtual void removeEntity(const DtLgrHlaHandle handle);
77 
80  virtual unsigned int getInteractionConveyedRegionSet(const DtConstLgrHlaMessage& info, DtDDMRegionSet& regionSet);
81 
84  virtual unsigned int getInteractionRegionSetFromData(const DtConstLgrHlaMessage& info,
85  const DtInteraction* interaction, DtDDMRegionSet& regionSet);
86 
89  virtual unsigned int getInteractionRegionSet(const DtConstLgrHlaMessage& info,
90  DtInteraction* interaction, DtDDMRegionSet& regionSet);
91 
97  virtual bool getPublisherRegionSetFromData(const DtPacket& info,
98  DtDDMRegionSet& regionSet);
99 
102  virtual unsigned int getObjectConveyedRegionSet(const DtConstLgrHlaMessage& info, DtDDMRegionSet& regionSet);
103 
105 
106 
107 
108 
109  bool cacheInteractionRegionsEnabled() const;
110  void setCacheInteractionRegionsEnabled(bool val);
112 
114 
115 
116  bool cacheObjectRegionsEnabled() const;
117  void setCacheObjectRegionsEnabled(bool val);
119 
120  public:
124  static void encodeIsPartOf_RPR_20014( const DtBaseEntityStateRepository& stateRep,
125  RTI::AttributeHandleValuePairSet* pAvList,
126  RTI::AttributeHandle attrHandle );
127 
128  protected:
129 
131  const DtLgrOnlineFomDesc& fom() const;
132 
134  virtual void immediateSend(const DtPacket&) const;
135 
137  virtual void sendInteractionWithRegion(const DtInteraction& interaction, const DtDDMRegionSet& regionSet) const;
138 
140  virtual void retainedSend(const DtPacket&);
141 
143  virtual void updateEntity(const DtPacket&);
144 
146  virtual void removeEntity(const DtPacket&);
147 
149  virtual void tick();
150 
152  virtual DtLgrPublisherInterface* createPublisher(const DtPacket& info);
153 
156  virtual DtLgrPublisherInterface* doPublish(RTI::ObjectClassHandle classHandle,
157  const char* objName, const DtDDMRegionSet* regionSetToUse, bool silent);
158 
160  virtual void printRegion(DtDDMRegionSP region) const;
161 
162  protected:
163 
165  typedef std::map<DtString,DtLgrHlaHandle> DtObjectNameMap;
166  typedef std::map<DtLgrHlaHandle,DtLgrPublisherInterface*> DtObjectPublisherMap;
167 
168  DtLgrHlaSimulationManager& myHlaManager;
169  DtObjectNameMap myObjectNameMap;
170  DtObjectPublisherMap myObjectPublisherMap;
171  DtLgrHlaMessageIOInfo* myMessageInfo;
172  double myPublisherScaling;
173  bool myPublisherStatic;
174  DtInteractionFactory* myFactory;
175  DtIDRegionMap myRegionHandleMap;
176  bool myCacheInteractionRegionsEnabled;
177  bool myCacheObjectRegionsEnabled;
178 
179  std::set<DtLgrPublisherInterface*> myFilteredPublishers;
180  };
181 
182 }
183 
184 #endif
185 #endif

Document ID: Generated on Sun Dec 15 18:04:30 EST 2013 from SVN revision 134418
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)