12 #ifndef lgrDisSimDriver_H_
13 #define lgrDisSimDriver_H_
24 #include <vlutil/vlInetAddr.h>
26 class DtExerciseConnInitializer;
32 class DtDisDescriptor;
33 class DtLgrDisEntityTypeManager;
34 class DtLgrDisCommandFactory;
35 class DtLgrDisSimulationManager;
36 class DtLgrDisSimInterface;
38 class DtMessagePipeline;
39 class DtLgrSystemDriver;
40 class DtLgrPduTypeFilter;
41 class DtLgrDisEntityTypeFilter;
49 typedef DtLgrDisCommandFactory Factory;
50 typedef DtLgrDisSimInterface Interface;
54 virtual ~DtLgrDisSimDriver();
58 DtResponse setConnectionParameters(const DtCommand& command);
61 DtResponse setHeartbeatRate(const DtCommand& command);
64 DtResponse setTimeoutRate(const DtCommand& command);
67 DtResponse setDrainInputSettings(const DtCommand& command);
69 virtual DtLgrSimManager* simManager();
70 virtual const DtLgrSimManager* simManager() const;
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;
85 virtual
double heartbeatRate() const;
86 virtual
double timeoutRate() const;
88 virtual
double drainInputMaxTime() const;
89 virtual
int numPdusToReadPerTimeCheck() const;
91 virtual
bool isConnected() const;
92 virtual const DtDisDescriptor* disDescription() const;
93 virtual const DtLgrDisEntityTypeManager* entityTypeManager() const;
98 virtual
DtResponse connect(const DtCommand& command);
101 virtual
DtResponse connectShared(const DtCommand& command);
104 virtual
DtResponse disconnect(const DtCommand& command);
107 virtual
void updateRecordRemoteControlFilter();
110 virtual
DtResponse setDisDescription(const DtCommand& command);
113 virtual
DtResponse setEntityTypeManager(const DtCommand& command);
116 virtual
DtResponse setCommonEntityTypes(const DtCommand& command);
119 virtual
DtResponse filterEntityTypes(const DtCommand& command);
122 virtual
DtResponse setCommonEntityIds(const DtCommand& command);
125 virtual
DtResponse filterEntityIds(const DtCommand& command);
128 virtual
DtResponse addCustomPDU(const DtCommand& command);
130 virtual
DtResponse addFilteredEntityName(const DtCommand& command);
140 virtual
bool releasePipeline();
141 virtual
bool getPipeline();
142 virtual
bool hasPipeline() const;
150 class DtFixedExerciseConnInitializer;
152 DtLgrDisSimulationManager* mySimManager;
153 DtLgrPduTypeFilter* myPduFilter;
154 DtLgrDisEntityTypeFilter* myEntityTypeFilter;
161 DtInetAddr myDestAddr;
162 DtInetAddr myDeviceAddr;
165 int mySendBufferSize;
166 int myRecvBufferSize;
168 std::vector<
DtString> myMcastAddresses;