MAK Data Logger API Documentation for DIS
lgrDisSimDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #if DtDIS
11 
12 #ifndef lgrDisSimDriver_H_
13 #define lgrDisSimDriver_H_
14 
15 #include "lgrSim.h"
16 #include "lgrSimDriver.h"
17 #include "lgrCommandFunctor.h"
18 #include "lgrCommandDispatcher.h"
19 #include "lgrExceptions.h"
20 #include "virtualConstructor.h"
21 
22 #include <map>
23 
24 #include <vlutil/vlInetAddr.h>
25 
26 class DtExerciseConnInitializer;
27 
28 namespace MAKLogger
29 {
30 
31  class DtCommand;
32  class DtDisDescriptor;
33  class DtLgrDisEntityTypeManager;
34  class DtLgrDisCommandFactory;
35  class DtLgrDisSimulationManager;
36  class DtLgrDisSimInterface;
37  class DtLgrSimDriver;
38  class DtMessagePipeline;
39  class DtLgrSystemDriver;
40  class DtLgrPduTypeFilter;
41  class DtLgrDisEntityTypeFilter;
42 
46  {
47  public:
48 
51 
53 
54  virtual ~DtLgrDisSimDriver();
55  virtual void tick();
56 
58  DtResponse setConnectionParameters(const DtCommand& command);
59 
61  DtResponse setHeartbeatRate(const DtCommand& command);
62 
64  DtResponse setTimeoutRate(const DtCommand& command);
65 
67  DtResponse setDrainInputSettings(const DtCommand& command);
68 
69  virtual DtLgrSimManager* simManager();
70  virtual const DtLgrSimManager* simManager() const;
71 
72  virtual int port() const;
73  virtual int exerciseId() const;
74  virtual int siteId() const;
75  virtual int appNumber() const;
76  virtual bool useAsynchIO() const;
77  virtual DtInetAddr destAddr() const;
78  virtual DtInetAddr deviceAddr() const;
79  virtual const DtString& netmask() const;
80  virtual int sendBufferSize() const;
81  virtual int recvBufferSize() const;
82  virtual int multicastTtl() const;
83  virtual const std::vector<DtString>& mcastAddresses() const;
84 
85  virtual double heartbeatRate() const;
86  virtual double timeoutRate() const;
87 
88  virtual double drainInputMaxTime() const;
89  virtual int numPdusToReadPerTimeCheck() const;
90 
91  virtual bool isConnected() const;
92  virtual const DtDisDescriptor* disDescription() const;
93  virtual const DtLgrDisEntityTypeManager* entityTypeManager() const;
94 
95  protected:
96 
98  virtual DtResponse connect(const DtCommand& command);
99 
101  virtual DtResponse connectShared(const DtCommand& command);
102 
104  virtual DtResponse disconnect(const DtCommand& command);
105 
106  // Update the remote control filter based on the record remote control setting
107  virtual void updateRecordRemoteControlFilter();
108 
110  virtual DtResponse setDisDescription(const DtCommand& command);
111 
113  virtual DtResponse setEntityTypeManager(const DtCommand& command);
114 
116  virtual DtResponse setCommonEntityTypes(const DtCommand& command);
117 
119  virtual DtResponse filterEntityTypes(const DtCommand& command);
120 
122  virtual DtResponse addCustomPDU(const DtCommand& command);
123 
124  virtual DtResponse addFilteredEntityName(const DtCommand& command);
125 
134  virtual bool releasePipeline();
135  virtual bool getPipeline();
136  virtual bool hasPipeline() const;
137 
138  protected:
139 
144  class DtFixedExerciseConnInitializer;
145 
146  DtLgrDisSimulationManager* mySimManager;
147  DtLgrPduTypeFilter* myPduFilter;
148  DtLgrDisEntityTypeFilter* myEntityTypeFilter;
149 
150  int myPort;
151  int myExerciseId;
152  int mySiteId;
153  int myAppNumber;
154  bool myUseAsynchIO;
155  DtInetAddr myDestAddr;
156  DtInetAddr myDeviceAddr;
157  // Never used independently of establishing the destination address or display
158  DtString myNetmask;
159  int mySendBufferSize;
160  int myRecvBufferSize;
161  int myMulticastTtl;
162  std::vector<DtString> myMcastAddresses;
163 
164  };
165 
166 }
167 
168 #endif
169 #endif

Document ID: Generated on Thu Apr 11 12:13:00 EDT 2013 from SVN revision 126011
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)