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 
66  virtual bool isConnectionOk() const;
67 
70  virtual bool connect(DtExerciseConnInitializer& initializer, DtString& failureReason);
71 
73  virtual void disconnect();
74 
76  virtual DtLgrDisSimDriver& simDriver();
77 
79  virtual const DtLgrDisSimDriver& simDriver() const;
80 
82  virtual const DtLgrSimInput* input() const;
83  virtual DtLgrSimInput* input();
84 
86  virtual const DtLgrSimOutput* output() const;
87  virtual DtLgrSimOutput* output();
88 
90  virtual const DtMessageState* state() const;
91  virtual DtMessageState* state();
92 
94  virtual DtMessageState* createState() const;
95 
97  virtual DtLgrFileInput* openFileForInput(const DtString& filename) const;
98 
100  virtual DtLgrFileOutput* openFileForCopying(const DtString& filename,
101  const DtLgrFileInput* input) const;
102 
104  virtual DtLgrFileOutput* openFileForOutput(const DtString& filename,
105  const DtString& description) const;
106 
108  virtual DtLgrFileInput* openPartialFileForCopying(
109  const DtLgrFileOutput* output , DtFilePosition firstPacket,
110  DtFilePosition lastPacket) const;
111 
112  virtual void addReceivePduCallback(DtPduCallbackFcn receivePduCb,void* usr);
113  virtual void removeReceivePduCallback(DtPduCallbackFcn receivePduCb,void* usr);
114 
116  virtual void sendPdu(DtPdu& pdu);
117 
119  virtual void registerPublisher(DtPduKind,LgrPublisherCreator);
120 
122  virtual void removePublisherCreator(DtPduKind);
123 
125  virtual bool pduNeedsPublisher(DtPduKind pduKind) const;
126 
128  virtual DtLgrPublisherInterface* createPublisher(const DtPdu& pdu);
129 
131  virtual DtRelativeTime heartbeatRate() const;
132 
134  virtual void setHeartbeatRate(DtRelativeTime time);
135 
137  virtual DtRelativeTime timeoutRate() const;
138 
140  virtual void setTimeoutRate(DtRelativeTime time);
141 
143  virtual bool scaleArticulatedParts() const;
144 
146  static DtVector scaleVector(const DtVector& vec,double scaleValue);
147 
149  virtual void setDisDescription(DtDisDescriptor* desc);
150 
152  virtual void setDrainInputMaxTime(double maxTime);
153 
155  virtual double drainInputMaxTime() const;
156 
158  virtual void setNumPdusToReadPerTimeCheck(int number);
159 
161  virtual int numPdusToReadPerTimeCheck() const;
162 
164  virtual const DtDisDescriptor* disDescription() const;
165  virtual DtDisDescriptor* disDescription();
166 
168  virtual void setEntityTypeManager(DtLgrDisEntityTypeManager* mgr);
169 
171  virtual DtLgrDisEntityTypeManager* entityTypeManager();
172  virtual const DtLgrDisEntityTypeManager* entityTypeManager() const;
173 
174  virtual void setConfigurationFileName(const DtString& filename);
175 
176  protected:
177 
178  static DtLgrPublisherInterface* createEntityStatePublisher(
179  DtLgrDisSimulationManager&, const DtPdu& pdu);
180 
181  static DtLgrPublisherInterface* createAggregateStatePublisher(
182  DtLgrDisSimulationManager&,const DtPdu& pdu);
183 
184  static DtLgrPublisherInterface* createEnvironmentalProcessPublisher(
185  DtLgrDisSimulationManager&,const DtPdu& pdu);
186 
187  static DtLgrPublisherInterface* createTransmitterPublisher(
188  DtLgrDisSimulationManager&,const DtPdu& pdu);
189 
190  static DtLgrPublisherInterface* createReceiverPublisher(
191  DtLgrDisSimulationManager&,const DtPdu& pdu);
192 
193  static DtLgrPublisherInterface* createGriddedDataPublisher(
194  DtLgrDisSimulationManager&,const DtPdu& pdu);
195 
196  typedef std::map<DtPduKind,LgrPublisherCreator> DtPublisherFunctionMap;
197 
198  typedef std::set<DtPduKind> DtPduKindSet;
199 
209 
215 
217  };
218 
219 }
220 
221 #endif
222 #endif

Document ID: Generated on Thu Jul 23 15:05:27 EDT 2020 from SVN revision 215371
Copyright © 2020 MAK Technologies. All Rights Reserved (www.mak.com)