![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef _dExConnInit_H_ 00007 #define _dExConnInit_H_ 00008 00013 00014 #if DtDIS 00015 00016 #include <vlutil/vlUtil.h> 00017 #include <cmdLine/cmdLine.h> 00018 #include <vlutil/vlTimeStampType.h> 00019 #include <vlutil/vlString.h> 00020 #include "dExerciseConn.h" 00021 00022 #include <mtl/appSettings.h> 00023 00024 #include <mtl/configVar.h> 00025 #include <mtl/multiVar.h> 00026 00027 #include <vlutil/vlDisSocket.h> 00028 #include <vlutil/vlInetAddr.h> 00029 00030 class DtMtlEnvironment; 00031 00035 class DT_DLL_VL DtExerciseConnInitializer 00036 { 00037 public: 00039 DtExerciseConnInitializer(); 00040 00042 virtual ~DtExerciseConnInitializer(); 00043 00045 DtExerciseConnInitializer(const DtExerciseConnInitializer& orig); 00046 00048 DtExerciseConnInitializer& operator=(const DtExerciseConnInitializer& orig); 00049 00051 virtual void setPort(int port); 00052 00054 virtual int port() const; 00055 00057 virtual void setExerciseId(int id); 00058 00060 virtual int exerciseId() const; 00061 00063 virtual void setSiteId(int id); 00064 00066 virtual int siteId() const; 00067 00069 virtual void setApplicationNumber(int num); 00070 00072 virtual int applicationNumber() const; 00073 00075 virtual void setUseAsynchIO(bool on); 00076 00078 virtual bool useAsynchIO() const; 00079 00082 virtual void setDestinationAddress(const DtString &addr); 00083 00086 virtual DtString destinationAddress() const; 00087 00092 virtual void setSocket(DtDisSocket* sock); 00093 00095 virtual DtDisSocket* socket() const; 00096 00098 virtual void setNotifyLevel(int level); 00099 00101 virtual void setDisVersionToSend(int version); 00102 00106 virtual void setTimeStampType(DtTimeStampType relOrAbs); 00107 00109 virtual DtTimeStampType timeStampType() const; 00110 00112 virtual void setSendBufferSize(int numBytes); 00113 00115 virtual int sendBufferSize() const; 00116 00118 virtual void setReceiveBufferSize(int numBytes); 00119 00121 virtual int receiveBufferSize() const; 00122 00123 virtual void setUseIpv6(bool val); 00124 virtual bool useIpv6() const; 00125 00131 virtual void setMulticastTtl(int ttl); 00132 00134 virtual int multicastTtl() const; 00135 00136 virtual void setMulticastAddresses(const std::vector<DtString>& addresses); 00137 00138 virtual const std::vector<DtString>& multicastAddresses() const; 00139 00142 virtual void setDeviceAddress(const DtString& devAddr); 00143 00145 virtual DtString deviceAddress() const; 00146 00148 virtual void setSubnetMask(const DtString& mask); 00149 00151 virtual DtString subnetMask() const; 00152 00154 virtual void setSuppressSelfReflect(bool yesNo); 00155 00157 virtual bool suppressSelfReflect() const; 00158 00159 private: 00160 int myPort; 00161 int myExerciseId; 00162 int mySiteId; 00163 int myApplicationNumber; 00164 bool myUseAsynchIO; 00165 DtTimeStampType myTimeStampType; 00166 int mySendBufferSize; 00167 int myReceiveBufferSize; 00168 int myMulticastTtl; 00169 std::vector<DtString> myMulticastAddresses; 00170 bool myUseIpv6; 00171 bool mySuppressSelfReflect; 00172 DtString myDeviceAddress; 00173 DtString myDestinationAddress; 00174 DtString mySubnetMask; 00175 DtDisSocket* mySocket; 00176 }; 00177 00189 class DT_DLL_VL DtVrlApplicationInitializer : public DtExerciseConnInitializer 00190 { 00191 public: 00192 DtVrlApplicationInitializer(int argc, char* argv[], const DtString& appName, 00193 const DtString& version = DtExerciseConn::vrlinkVersion()); 00194 00195 virtual ~DtVrlApplicationInitializer(); 00196 00197 virtual void parseCmdLine(); 00198 00202 virtual void loadFile(const DtString& fileName); 00203 00205 virtual void saveFile(const DtString& filename); 00206 00207 00209 virtual int argc() const; 00210 00212 virtual char** argv() const; 00213 00214 virtual void setPort(int port); 00215 virtual int port() const; 00216 00217 virtual void setExerciseId(int id); 00218 virtual int exerciseId() const; 00219 00220 virtual void setApplicationNumber(int num); 00221 virtual int applicationNumber() const; 00222 00223 virtual void setSiteId(int id); 00224 virtual int siteId() const; 00225 00226 virtual void setDestinationAddress(const DtString& address); 00227 virtual DtString destinationAddress() const; 00228 00229 virtual void setNotifyLevel(int level); 00230 00231 virtual void setSendBufferSize(int numBytes); 00232 virtual int sendBufferSize() const; 00233 00234 virtual void setReceiveBufferSize(int numBytes); 00235 virtual int receiveBufferSize() const; 00236 00238 virtual void setUseAsynchIO(bool on); 00239 00241 virtual bool useAsynchIO() const; 00242 00243 00246 virtual void setMulticastTtl(int ttl); 00247 00250 virtual int multicastTtl() const; 00251 00254 virtual void setTimeStampType(DtTimeStampType relOrAbs); 00255 00257 virtual DtTimeStampType timeStampType() const; 00258 00259 virtual const std::vector<DtString>& multicastAddresses() const; 00260 00261 virtual void setUseIpv6(bool val); 00262 virtual bool useIpv6() const; 00263 00265 virtual void setSuppressSelfReflect(bool yesNo); 00266 00268 virtual bool suppressSelfReflect() const; 00269 00272 virtual void setDeviceAddress(const DtString& devAddr); 00273 00275 virtual DtString deviceAddress() const; 00276 00278 virtual void setSubnetMask(const DtString& mask); 00279 00281 virtual DtString subnetMask() const; 00282 00283 protected: 00284 00285 int myArgc; 00286 char** myArgv; 00287 DtMtlEnvironment* myMtlEnv; 00288 00289 virtual void initializeMtlParams(); 00290 virtual void loadMtlFile(const DtString& fileName); 00291 00292 DtApplicationSettings mySettings; 00293 DtConfigVariable<int> myNotifyLevel; 00294 DtVariableGroup myDisConnection; 00295 DtConfigVariable<int> myConfigVarPort; 00296 DtConfigVariable<int> myConfigVarExerciseId; 00297 DtConfigVariable<int> myConfigVarSiteNumber; 00298 DtConfigVariable<int> myConfigVarApplicationNumber; 00299 DtConfigVariable<int> myConfigVarDisVersion; 00300 DtConfigVariable<DtString> myConfigVarDestinationAddress; 00301 DtConfigVariable<int> myConfigVarSendBufferSize; 00302 DtConfigVariable<int> myConfigVarReceiveBufferSize; 00303 DtConfigVariable<bool> myConfigVarUseAsyncIo; 00304 DtConfigVariable<bool> myConfigVarUseIpv6; 00305 DtConfigVariable<bool> myConfigVarSuppressSelfReflect; 00306 DtConfigVariable<bool> myConfigVarUseAbsoluteTimestamps; 00307 DtConfigVariable<int> myConfigVarMulticastTtl; 00308 DtMultiConfigVariable<DtString> myConfigVarMulticastAddresses; 00309 DtConfigVariable<DtString> myConfigVarDeviceAddress; 00310 DtConfigVariable<DtString> myConfigVarSubnetMask; 00311 00312 mutable DtInetAddr myCachedDestAddr; 00313 int myMtlUseAsynchronousIO; 00314 int myMtlUseAbsoluteTimeStamps; 00315 int myMtlUseIpv6; 00316 int myMtlSuppressSelfReflect; 00317 }; 00318 00319 #endif //! DtDIS 00320 #endif //! _dExConnInit_H_ 00321