MAK Data Logger API Documentation for DIS
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.h"
16 #include "lgrBaseSimManager.h"
17 #include "virtualConstructor.h"
18 #include "absoluteTime.h"
19 #include "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 DtLgrClock;
41  class DtLgrDisEntityTypeManager;
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 connect(DtExerciseConnInitializer& initializer);
67 
69  virtual void disconnect();
70 
72  virtual const DtLgrSimInput* input() const;
73  virtual DtLgrSimInput* input();
74 
76  virtual const DtLgrSimOutput* output() const;
77  virtual DtLgrSimOutput* output();
78 
80  virtual const DtMessageState* state() const;
81  virtual DtMessageState* state();
82 
84  virtual DtMessageState* createState() const;
85 
87  virtual DtLgrFileInput* openFileForInput(const DtString& filename) const;
88 
90  virtual DtLgrFileOutput* openFileForCopying(const DtString& filename,
91  const DtLgrFileInput* input) const;
92 
94  virtual DtLgrFileOutput* openFileForOutput(const DtString& filename,
95  const DtString& description) const;
96 
98  virtual DtLgrFileInput* openPartialFileForCopying(
99  const DtLgrFileOutput* output , DtFilePosition firstPacket,
100  DtFilePosition lastPacket) const;
101 
102  virtual void addReceivePduCallback(DtPduCallbackFcn receivePduCb,void* usr);
103  virtual void removeReceivePduCallback(DtPduCallbackFcn receivePduCb,void* usr);
104 
106  virtual void sendPdu(DtPdu& pdu, unsigned char desiredExerciseId );
107 
109  virtual void registerPublisher(DtPduKind,LgrPublisherCreator);
110 
112  virtual void removePublisherCreator(DtPduKind);
113 
115  virtual bool pduNeedsPublisher(DtPduKind pduKind) const;
116 
118  virtual DtLgrPublisherInterface* createPublisher(const DtPdu& pdu);
119 
121  virtual DtRelativeTime heartbeatRate() const;
122 
124  virtual void setHeartbeatRate(DtRelativeTime time);
125 
127  virtual DtRelativeTime timeoutRate() const;
128 
130  virtual void setTimeoutRate(DtRelativeTime time);
131 
133  virtual bool scaleArticulatedParts() const;
134 
136  static DtVector scaleVector(const DtVector& vec,double scaleValue);
137 
139  virtual void setDisDescription(DtDisDescriptor* desc);
140 
142  virtual void setDrainInputMaxTime(double maxTime);
143 
145  virtual double drainInputMaxTime() const;
146 
148  virtual void setNumPdusToReadPerTimeCheck(int number);
149 
151  virtual int numPdusToReadPerTimeCheck() const;
152 
154  virtual const DtDisDescriptor* disDescription() const;
155  virtual DtDisDescriptor* disDescription();
156 
158  virtual void setEntityTypeManager(DtLgrDisEntityTypeManager* mgr);
159 
161  virtual DtLgrDisEntityTypeManager* entityTypeManager();
162  virtual const DtLgrDisEntityTypeManager* entityTypeManager() const;
163 
164  virtual void setConfigurationFileName(const DtString& filename);
165 
166  protected:
167 
168  static DtLgrPublisherInterface* createEntityStatePublisher(
169  DtLgrDisSimulationManager*, const DtPdu& pdu);
170 
171  static DtLgrPublisherInterface* createAggregateStatePublisher(
172  DtLgrDisSimulationManager*,const DtPdu& pdu);
173 
174  static DtLgrPublisherInterface* createEnvironmentalProcessPublisher(
175  DtLgrDisSimulationManager*,const DtPdu& pdu);
176 
177  static DtLgrPublisherInterface* createTransmitterPublisher(
178  DtLgrDisSimulationManager*,const DtPdu& pdu);
179 
180  static DtLgrPublisherInterface* createReceiverPublisher(
181  DtLgrDisSimulationManager*,const DtPdu& pdu);
182 
183  static DtLgrPublisherInterface* createGriddedDataPublisher(
184  DtLgrDisSimulationManager*,const DtPdu& pdu);
185 
186  typedef std::map<DtPduKind,LgrPublisherCreator> DtPublisherFunctionMap;
187 
188  typedef std::set<DtPduKind> DtPduKindSet;
189 
197 
203 
205  };
206 
207 }
208 
209 #endif
210 #endif

Document ID: Generated on Thu Apr 10 18:53:01 EDT 2014 from SVN revision 138105
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)