MAK Data Logger API Documentation for HLA
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 
45  class DT_DLL_LGRSIM DtLgrDisSimDriver : public DtLgrSimDriver
46  {
47  public:
48 
49  typedef DtLgrDisCommandFactory Factory;
50  typedef DtLgrDisSimInterface Interface;
51 
52  DT_VIRTUAL_CTR(DtLgrDisSimDriver,(DtLgrSystemDriver&))
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 setCommonEntityIds(const DtCommand& command);
123 
125  virtual DtResponse filterEntityIds(const DtCommand& command);
126 
128  virtual DtResponse addCustomPDU(const DtCommand& command);
129 
130  virtual DtResponse addFilteredEntityName(const DtCommand& command);
131 
140  virtual bool releasePipeline();
141  virtual bool getPipeline();
142  virtual bool hasPipeline() const;
143 
144  protected:
145 
150  class DtFixedExerciseConnInitializer;
151 
152  DtLgrDisSimulationManager* mySimManager;
153  DtLgrPduTypeFilter* myPduFilter;
154  DtLgrDisEntityTypeFilter* myEntityTypeFilter;
155 
156  int myPort;
157  int myExerciseId;
158  int mySiteId;
159  int myAppNumber;
160  bool myUseAsynchIO;
161  DtInetAddr myDestAddr;
162  DtInetAddr myDeviceAddr;
163  // Never used independently of establishing the destination address or display
164  DtString myNetmask;
165  int mySendBufferSize;
166  int myRecvBufferSize;
167  int myMulticastTtl;
168  std::vector<DtString> myMcastAddresses;
169 
170  };
171 
172 }
173 
174 #endif
175 #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)