MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrDisSimManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef lgrDisSimManager_H_
11 #define lgrDisSimManager_H_
12 
13 #if DtDIS
14 
15 #include <lgrSim/lgrSim.h>
16 #include "lgrBaseSimManager.h"
18 #include <lgrUtil/absoluteTime.h>
19 #include <lgrCore/lgrConfigData.h>
20 
21 #include <vl/pduCallbackManager.h>
22 #include <map>
23 #include <set>
24 
25 class DtPdu;
26 class DtExerciseConn;
27 class DtExerciseConnInitializer;
28 class DtObjectPublisher;
29 enum DtPduKind;
30 
31 namespace MAKLogger
32 {
33 
34  class DtDisDescriptor;
35  class DtLgrPublisherInterface;
36  class DtLgrDisMessageState;
37  class DtLgrDisSimInput;
38  class DtLgrDisSimOutput;
39  class DtLgrFileOutput;
40  class DtLgrDisEntityTypeManager;
41  class DtLgrDisSimDriver;
42 
46  {
47  public:
48 
50  typedef DtLgrPublisherInterface* (*LgrPublisherCreator)\
51  (DtLgrDisSimulationManager&,const DtPdu& pdu);
52 
53  public:
54 
56 
57  virtual ~DtLgrDisSimulationManager();
58 
60  virtual void tick();
61 
63  virtual bool isConnected() const;
64 
67  virtual bool connect(DtExerciseConnInitializer& initializer, DtString& failureReason);
68 
70  virtual void disconnect();
71 
73  virtual DtLgrDisSimDriver& simDriver();
74 
76  virtual const DtLgrDisSimDriver& simDriver() const;
77 
79  virtual const DtLgrSimInput* input() const;
80  virtual DtLgrSimInput* input();
81 
83  virtual const DtLgrSimOutput* output() const;
84  virtual DtLgrSimOutput* output();
85 
87  virtual const DtMessageState* state() const;
88  virtual DtMessageState* state();
89 
91  virtual DtMessageState* createState() const;
92 
94  virtual DtLgrFileInput* openFileForInput(const DtString& filename) const;
95 
97  virtual DtLgrFileOutput* openFileForCopying(const DtString& filename,
98  const DtLgrFileInput* input) const;
99 
101  virtual DtLgrFileOutput* openFileForOutput(const DtString& filename,
102  const DtString& description) const;
103 
105  virtual DtLgrFileInput* openPartialFileForCopying(
106  const DtLgrFileOutput* output , DtFilePosition firstPacket,
107  DtFilePosition lastPacket) const;
108 
109  virtual void addReceivePduCallback(DtPduCallbackFcn receivePduCb,void* usr);
110  virtual void removeReceivePduCallback(DtPduCallbackFcn receivePduCb,void* usr);
111 
113  virtual void sendPdu(DtPdu& pdu);
114 
116  virtual void registerPublisher(DtPduKind,LgrPublisherCreator);
117 
119  virtual void removePublisherCreator(DtPduKind);
120 
122  virtual bool pduNeedsPublisher(DtPduKind pduKind) const;
123 
125  virtual DtLgrPublisherInterface* createPublisher(const DtPdu& pdu);
126 
128  virtual DtRelativeTime heartbeatRate() const;
129 
131  virtual void setHeartbeatRate(DtRelativeTime time);
132 
134  virtual DtRelativeTime timeoutRate() const;
135 
137  virtual void setTimeoutRate(DtRelativeTime time);
138 
140  virtual bool scaleArticulatedParts() const;
141 
143  static DtVector scaleVector(const DtVector& vec,double scaleValue);
144 
146  virtual void setDisDescription(DtDisDescriptor* desc);
147 
149  virtual void setDrainInputMaxTime(double maxTime);
150 
152  virtual double drainInputMaxTime() const;
153 
155  virtual void setNumPdusToReadPerTimeCheck(int number);
156 
158  virtual int numPdusToReadPerTimeCheck() const;
159 
161  virtual const DtDisDescriptor* disDescription() const;
162  virtual DtDisDescriptor* disDescription();
163 
165  virtual void setEntityTypeManager(DtLgrDisEntityTypeManager* mgr);
166 
168  virtual DtLgrDisEntityTypeManager* entityTypeManager();
169  virtual const DtLgrDisEntityTypeManager* entityTypeManager() const;
170 
171  virtual void setConfigurationFileName(const DtString& filename);
172 
173  protected:
174 
175  static DtLgrPublisherInterface* createEntityStatePublisher(
176  DtLgrDisSimulationManager&, const DtPdu& pdu);
177 
178  static DtLgrPublisherInterface* createAggregateStatePublisher(
179  DtLgrDisSimulationManager&,const DtPdu& pdu);
180 
181  static DtLgrPublisherInterface* createEnvironmentalProcessPublisher(
182  DtLgrDisSimulationManager&,const DtPdu& pdu);
183 
184  static DtLgrPublisherInterface* createTransmitterPublisher(
185  DtLgrDisSimulationManager&,const DtPdu& pdu);
186 
187  static DtLgrPublisherInterface* createReceiverPublisher(
188  DtLgrDisSimulationManager&,const DtPdu& pdu);
189 
190  static DtLgrPublisherInterface* createGriddedDataPublisher(
191  DtLgrDisSimulationManager&,const DtPdu& pdu);
192 
193  typedef std::map<DtPduKind,LgrPublisherCreator> DtPublisherFunctionMap;
194 
195  typedef std::set<DtPduKind> DtPduKindSet;
196 
206 
212 
214  };
215 
216 }
217 
218 #endif
219 #endif

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)