10 #ifndef lgrDisSimInterface_H_
11 #define lgrDisSimInterface_H_
17 #include <vlutil/vlUtil.h>
18 #include <vlutil/vlInetAddr.h>
23 class DtDisDescriptor;
24 class DtLgrDisEntityTypeManager;
25 class DtLgrDisSimDriver;
26 class DtLgrDisCommandFactory;
30 class DT_DLL_LGRSIM DtLgrDisSimInterface :
public DtLgrSimInterface
33 typedef DtLgrDisCommandFactory Factory;
36 static DtLgrDisSimInterface* create(DtLogger&);
39 static DtLgrSimInterface* createBase(DtLogger&);
42 virtual ~DtLgrDisSimInterface();
46 static DtLgrDisSimInterface* createNonThreadsafe(DtLogger& logger,
47 const DtLgrDisSimDriver& driver);
52 virtual void setConnectionParameters(
int port,
int exerciseId,
int siteId,
int appNumber,
53 bool useAsynchIO,
int sendBufferSize,
int recvBufferSize,
int multicastTtl,
55 const std::vector<DtString>& mcastAddresses)
const;
58 virtual void getLoggerName(
DtString& name)
const;
61 virtual void setHeartbeatRate(
double rate)
const;
64 virtual void setTimeoutRate(
double rate)
const;
67 virtual void setDisDescription(
const DtDisDescriptor& desc)
const;
70 virtual void setDrainInputSettings(
double maxTime,
71 int numPdusToRead)
const;
74 virtual const DtDisDescriptor* disDescription()
const;
77 virtual void setEntityTypeManager(
const DtLgrDisEntityTypeManager& mgr)
const;
80 virtual const DtLgrDisEntityTypeManager* entityTypeManager()
const;
84 virtual int port()
const;
85 virtual int exerciseId()
const;
86 virtual int siteId()
const;
87 virtual int appNumber()
const;
88 virtual bool useAsynchIO()
const;
89 virtual int sendBufferSize()
const;
90 virtual int recvBufferSize()
const;
91 virtual int multicastTtl()
const;
92 virtual DtInetAddr destAddr()
const;
93 virtual const DtString& netmask()
const;
94 virtual DtInetAddr deviceAddr()
const;
95 virtual const std::vector<DtString>& mcastAddresses()
const;
99 virtual double heartbeatRate()
const;
102 virtual double timeoutRate()
const;
105 virtual double drainInputMaxTime()
const;
108 virtual int numPdusToReadPerTimeCheck()
const;
114 void (DtLgrDisSimInterface::*
function)(
DtResponse));
116 void connectionParametersChanged(
DtResponse response);
117 void heartbeatRateChanged(
DtResponse response);
119 void disDescriptionChanged(
DtResponse response);
120 void entityTypeManagerChanged(
DtResponse response);
121 void drainInputSettingsChanged(
DtResponse response);
123 DtLgrDisSimInterface(DtLogger& logger,
const DtLgrDisSimDriver& driver);
125 DtDisDescriptor* myDisDescriptor;
126 DtLgrDisEntityTypeManager* myEntityTypeManager;
133 int mySendBufferSize;
134 int myRecvBufferSize;
136 DtInetAddr myDestAddr;
137 DtInetAddr myDeviceAddr;
139 std::vector<DtString> myMcastAddresses;
140 double myHeartBeatRate;
141 double myTimeoutRate;
142 double myDrainInputMaxTime;
143 int myNumPdusToReadPerTimeCheck;