VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfGuiCommandLineParser.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <vrfGuiCore/vrfDe.h>
16 
18 
19 #include <cmdLine/cmdArg.h>
20 #include <cmdLine/cmdLine.h>
21 
22 #include <boost/function.hpp>
23 
24 namespace makVrf
25 {
32  {
33  protected:
34  typedef boost::function<void (std::vector<DtCmdLine::Arg*>&,
36 
37  public:
39 
41 
43  virtual void processCommandLine(makVrv::DtVrvApplicationConfiguration& appConfig, int argc, char** argv);
44 
46  virtual void removeAutoStartDriver();
47 
48  void setAllowObserverModeFlags(bool);
49 
52  virtual void addAdditionalCommandLineArgument(DtCmdLine::Arg* addlArg);
53 
54  const std::string& autoStartDriver() const
55  {
56  return myAutoStartDriver;
57  }
58 
59  protected:
60  struct BaseArgs
61  {
62  virtual void processArgs(makVrv::DtVrvApplicationConfiguration& appConfig, StealthArgs& args, std::string& autoStartDriver) = 0;
63  virtual std::string driverName() const = 0;
64  virtual std::string driverClass() const = 0;
65 
67  DtCmdLine::ValueArg<int>* siteId;
68  DtCmdLine::ValueArg<int>* appId;
69  DtCmdLine::SwitchArg* useAbsoluteTimeStamps;
70  DtCmdLine::ValueArg<int>* fileTransporterReceivePort;
71  DtCmdLine::ValueArg<int>* numberOfRemoteNetworkThreads;
72  DtCmdLine::SwitchArg* disableRemoteDiscovery;
73  DtCmdLine::SwitchArg* processStateDataUponDiscovery;
74  };
75 
76  struct LegionArgs : public BaseArgs
77  {
78  virtual void processArgs(makVrv::DtVrvApplicationConfiguration& appConfig, StealthArgs& args, std::string& autoStartDriver);
79  virtual std::string driverName() const;
80  virtual std::string driverClass() const;
81 
82  DtCmdLine::ValueArg<int>* port;
83  DtCmdLine::ValueArg<int>* siteId;
84  DtCmdLine::ValueArg<int>* appId;
85  DtCmdLine::ValueArg<int>* sessionId;
86  DtCmdLine::ValueArg<std::string>* serverAddress;
87  DtCmdLine::ValueArg<std::string>* deviceAddress;
88  DtCmdLine::ValueArg<std::string>* hostAddress;
89  DtCmdLine::ValueArg<std::string>* reportedHostAddress;
90  };
91 
92  struct DisArgs : public BaseArgs
93  {
94  virtual void processArgs(makVrv::DtVrvApplicationConfiguration& appConfig, StealthArgs& args, std::string& autoStartDriver);
95  virtual std::string driverName() const;
96  virtual std::string driverClass() const;
97 
98  DtCmdLine::ValueArg<int>* port;
99  DtCmdLine::ValueArg<int>* exerciseId;
100  DtCmdLine::ValueArg<int>* disVersion;
101  DtCmdLine::ValueArg<std::string>* destinationAddress;
102  DtCmdLine::ValueArg<std::string>* deviceAddress;
103  DtCmdLine::ValueArg<std::string>* subnetMask;
104  DtCmdLine::ValueArg<std::string>* hostAddress;
105  DtCmdLine::ValueArg<std::string>* reportedHostAddress;
106  DtCmdLine::ValueArg<std::string>* appIdRange;
107  DtCmdLine::ValueArg<int>* sessionId;
108  DtCmdLine::ValueArg<int>* receiveBufferSize;
109  DtCmdLine::ValueArg<int>* sendBufferSize;
110  DtCmdLine::SwitchArg* useAsynchIO;
111  DtCmdLine::SwitchArg* useIpv6;
112  DtCmdLine::ValueArg<int>* multicastTTL;
113  DtCmdLine::MultiArg<std::string>* multicastAddresses;
114  DtCmdLine::ValueArg<double>* defaultObjectTimeout;
115  };
116 
117  struct Hla13Args : public BaseArgs
118  {
119  virtual void processArgs(makVrv::DtVrvApplicationConfiguration& appConfig, StealthArgs& args, std::string& autoStartDriver);
120  virtual void setupHlaConfiguration(makVrv::DtConfiguration& config, StealthArgs& args);
121  virtual std::string driverName() const;
122  virtual std::string driverClass() const;
123 
124  DtCmdLine::ValueArg<std::string>* execName;
125  DtCmdLine::ValueArg<std::string>* fedFileName;
126  DtCmdLine::ValueArg<std::string>* fomMapperLibName;
127  DtCmdLine::ValueArg<std::string>* fomMapperInitData;
128  DtCmdLine::ValueArg<std::string>* hostAddress;
129  DtCmdLine::ValueArg<std::string>* reportedHostAddress;
130  DtCmdLine::ValueArg<int>* sessionId;
131  DtCmdLine::ValueArg<double>* rprFomVersion;
132  DtCmdLine::ValueArg<int>* rprFomRevision;
133  DtCmdLine::SwitchArg* useAdvisories;
134  DtCmdLine::SwitchArg* useGeographicDdm;
135  DtCmdLine::ValueArg<std::string>* federateType;
136  DtCmdLine::SwitchArg* disableRequestUpdates;
137  DtCmdLine::SwitchArg* requestWhenInitialized;
138  };
139 
140  struct Hla1516Args : public Hla13Args
141  {
142  virtual std::string driverName() const;
143  virtual std::string driverClass() const;
144  };
145 
146  struct Hla1516eArgs : public Hla13Args
147  {
148  virtual void setupHlaConfiguration(makVrv::DtConfiguration& config, StealthArgs& args);
149 
150  virtual std::string driverName() const;
151  virtual std::string driverClass() const;
152 
153  DtCmdLine::MultiArg<std::string>* fomModule;
154  DtCmdLine::ValueArg<std::string>* federateName;
155  DtCmdLine::ValueArg<std::string>* localSettingsDesignator;
156  };
157 
159  {
160  DtCmdLine::SwitchArg* disMode;
161  DtCmdLine::SwitchArg* legionMode;
162  DtCmdLine::SwitchArg* hla13Mode;
163  DtCmdLine::SwitchArg* hla1516Mode;
164  DtCmdLine::SwitchArg* hla1516eMode;
165 
166  DtCmdLine::MultiArg<std::string>* pluginsToLoadArg;
167  DtCmdLine::ValueArg<std::string>* loadScenario;
168  DtCmdLine::SwitchArg* doNotLoadDefaultPluginsArg;
169  DtCmdLine::SwitchArg* doNotCheckPluginVersions;
170  DtCmdLine::ValueArg<std::string>* gui;
171  DtCmdLine::ValueArg<std::string>* fowPerspective;
172  DtCmdLine::ValueArg<std::string>* nonVrfObjectsUseUUIDScheme;
173  DtCmdLine::ValueArg<std::string>* useFileCommChannel;
174  DtCmdLine::ValueArg<std::string>* loadSimulationObjectGroup;
175  DtCmdLine::ValueArg<std::string>* defaultSimulationModelSet;
176  DtCmdLine::ValueArg<std::string>* layoutSettingsFile;
177  DtCmdLine::SwitchArg* noAppDataSpotReportDefsLoadingArg;
178  DtCmdLine::MultiArg<std::string>* spotReportDefsHierFilesOrDirs;
179  DtCmdLine::MultiArg<std::string>* spotReportDefsLeafFilesOrDirs;
180  DtCmdLine::ValueArg<std::string>* userScenarioDirectory;
181  DtCmdLine::ValueArg<std::string>* userTerrainDirectory;
182  DtCmdLine::ValueArg<std::string>* sharedSettingsDirectory;
183  DtCmdLine::SwitchArg* useUserSettingsDirectory;
184 
186  DtCmdLine::SwitchArg* pvdModeOnly;
187  DtCmdLine::SwitchArg* stealthModeOnly;
188 
189  std::vector<BaseArgs*> additionalArguments;
190 
192  DtCmdLine::SwitchArg* enableLogFileTimestamps;
193  };
194 
196  virtual void processArgs(makVrv::DtVrvApplicationConfiguration& appConfig, StealthArgs& args);
197  virtual std::vector<DtCmdLine::Arg*> createDefaultArguments(VrfGuiArgs& args);
198 
199  virtual void addArgumentParserAddition(const std::string&, DtAdditionalCommandsFcn fcn);
200 
203  BaseArgs*, std::string& autoStarted);
204 
206  const std::string& driverName, const std::string& driverClass, std::string& fullName);
207  virtual std::string createDriverFileName(const makVrv::DtVrvApplicationConfiguration& a,
208  const std::string& driverClass,const std::string& driverName);
209  virtual void addHlaCommandArguments(std::vector<DtCmdLine::Arg*>& a,
211 
213  virtual void bindObserverModes(const std::vector<std::string>&, makVrf::DtVrfGuiApplication::ObserverModeBindings&) const;
214 
215  protected:
216  virtual void addLegionCommandArguments(std::vector<DtCmdLine::Arg*>&,
218  virtual void addDisCommandArguments(std::vector<DtCmdLine::Arg*>&,
220  virtual void addHla13CommandArguments(std::vector<DtCmdLine::Arg*>&,
222  virtual void addHla1516CommandArguments(std::vector<DtCmdLine::Arg*>&,
224  virtual void addHla1516eCommandArguments(std::vector<DtCmdLine::Arg*>&,
226 
228 
230  virtual std::vector<std::string> defaultObserverMode() const;
231 
232  protected:
233  std::map<std::string, DtAdditionalCommandsFcn> myAdditionalCommands;
234  std::string myAutoStartDriver;
236 
237  std::vector<DtCmdLine::Arg*> myAdditionalCommandLineArguments;
238  };
239 }
240 
241 #ifndef DtVrfGuiCommandLineParser_INL
242 #include <vrfGuiCore/vrfGuiCommandLineParser.inl>
243 #endif
DtCmdLine::ValueArg< int > * sendBufferSize
Definition: vrfGuiCommandLineParser.h:109
DtCmdLine::SwitchArg * noAppDataSpotReportDefsLoadingArg
Definition: vrfGuiCommandLineParser.h:177
DtCmdLine::SwitchArg * requestWhenInitialized
Definition: vrfGuiCommandLineParser.h:137
virtual void processArgs(makVrv::DtVrvApplicationConfiguration &appConfig, StealthArgs &args, std::string &autoStartDriver)
virtual void addHla1516CommandArguments(std::vector< DtCmdLine::Arg * > &, makVrv::DtStealthCommandLineProcessor::StealthArgs &)
DtCmdLine::SwitchArg * legionMode
Definition: vrfGuiCommandLineParser.h:161
Definition: vrfGuiCommandLineParser.h:146
DtCmdLine::SwitchArg * doNotLoadDefaultPluginsArg
Definition: vrfGuiCommandLineParser.h:168
virtual std::vector< DtCmdLine::Arg * > createDefaultArguments(VrfGuiArgs &args)
virtual void addLegionCommandArguments(std::vector< DtCmdLine::Arg * > &, makVrv::DtStealthCommandLineProcessor::StealthArgs &)
Definition: DtStealthCommandLineProcessor.h:40
DtCmdLine::SwitchArg * useAdvisories
Definition: vrfGuiCommandLineParser.h:133
DtCmdLine::ValueArg< std::string > * defaultSimulationModelSet
Definition: vrfGuiCommandLineParser.h:175
virtual std::vector< std::string > defaultObserverMode() const
Default observer mode in case of none. Plan_View is default.
virtual void processArgs(makVrv::DtVrvApplicationConfiguration &appConfig, StealthArgs &args, std::string &autoStartDriver)
virtual std::string driverClass() const
DtCmdLine::ValueArg< int > * sessionId
Definition: vrfGuiCommandLineParser.h:130
DtCmdLine::ValueArg< int > * siteId
Definition: vrfGuiCommandLineParser.h:67
DtCmdLine::ValueArg< std::string > * userTerrainDirectory
Definition: vrfGuiCommandLineParser.h:181
DtCmdLine::ValueArg< std::string > * userScenarioDirectory
Definition: vrfGuiCommandLineParser.h:180
virtual std::string driverClass() const
DtCmdLine::ValueArg< int > * receiveBufferSize
Definition: vrfGuiCommandLineParser.h:108
DtCmdLine::ValueArg< std::string > * fomMapperInitData
Definition: vrfGuiCommandLineParser.h:127
DtCmdLine::ValueArg< std::string > * reportedHostAddress
Definition: vrfGuiCommandLineParser.h:129
Definition: vrfGuiCommandLineParser.h:76
DtCmdLine::MultiArg< std::string > * multicastAddresses
Definition: vrfGuiCommandLineParser.h:113
DtCmdLine::ValueArg< double > * rprFomVersion
Definition: vrfGuiCommandLineParser.h:131
DtCmdLine::ValueArg< std::string > * deviceAddress
Definition: vrfGuiCommandLineParser.h:102
DtCmdLine::ValueArg< std::string > * fowPerspective
Definition: vrfGuiCommandLineParser.h:171
virtual std::string driverClass() const
DtCmdLine::ValueArg< int > * disVersion
Definition: vrfGuiCommandLineParser.h:100
DtCmdLine::SwitchArg * stealthModeOnly
Definition: vrfGuiCommandLineParser.h:187
virtual void setupDefaultProtocolArguments(BaseArgs &)
virtual void addArgumentParserAddition(const std::string &, DtAdditionalCommandsFcn fcn)
Definition: vrfGuiCommandLineParser.h:60
DtCmdLine::MultiArg< std::string > * spotReportDefsHierFilesOrDirs
Definition: vrfGuiCommandLineParser.h:178
DtCmdLine::ValueArg< int > * sessionId
Definition: vrfGuiCommandLineParser.h:85
std::vector< DtCmdLine::Arg * > myAdditionalCommandLineArguments
Definition: vrfGuiCommandLineParser.h:237
virtual std::string createDriverFileName(const makVrv::DtVrvApplicationConfiguration &a, const std::string &driverClass, const std::string &driverName)
Definition: vrfGuiCommandLineParser.h:92
DtCmdLine::ValueArg< int > * rprFomRevision
Definition: vrfGuiCommandLineParser.h:132
virtual std::string driverName() const =0
DtCmdLine::ValueArg< int > * siteId
Definition: vrfGuiCommandLineParser.h:83
virtual void removeAutoStartDriver()
Delete the driver created to start.
DtCmdLine::ValueArg< int > * appId
Definition: vrfGuiCommandLineParser.h:68
DtCmdLine::ValueArg< std::string > * localSettingsDesignator
Definition: vrfGuiCommandLineParser.h:155
DtCmdLine::ValueArg< std::string > * nonVrfObjectsUseUUIDScheme
Definition: vrfGuiCommandLineParser.h:172
virtual void setupHlaConfiguration(makVrv::DtConfiguration &config, StealthArgs &args)
DtCmdLine::SwitchArg * useUserSettingsDirectory
Definition: vrfGuiCommandLineParser.h:183
DtCmdLine::SwitchArg * doNotCheckPluginVersions
Definition: vrfGuiCommandLineParser.h:169
Definition: vrfGuiCommandLineParser.h:158
virtual std::string driverClass() const
DtCmdLine::MultiArg< std::string > * spotReportDefsLeafFilesOrDirs
Definition: vrfGuiCommandLineParser.h:179
DtCmdLine::ValueArg< int > * numberOfRemoteNetworkThreads
Definition: vrfGuiCommandLineParser.h:71
DtCmdLine::SwitchArg * enableLogFileTimestamps
Whether or not log file timestamps are enabled (default is false)
Definition: vrfGuiCommandLineParser.h:192
DtCmdLine::SwitchArg * useAbsoluteTimeStamps
Definition: vrfGuiCommandLineParser.h:69
virtual void processArgs(makVrv::DtVrvApplicationConfiguration &appConfig, StealthArgs &args)
Modify the app configuration based on the passed-in command line arguments.
virtual void processArgs(makVrv::DtVrvApplicationConfiguration &appConfig, StealthArgs &args, std::string &autoStartDriver)
DtCmdLine::SwitchArg * disableRequestUpdates
Definition: vrfGuiCommandLineParser.h:136
virtual void processCommandLine(makVrv::DtVrvApplicationConfiguration &appConfig, int argc, char **argv)
Parse the command line and modify the appConfig accordingly.
DtCmdLine::SwitchArg * useAsynchIO
Definition: vrfGuiCommandLineParser.h:110
DtCmdLine::ValueArg< int > * fileTransporterReceivePort
Definition: vrfGuiCommandLineParser.h:70
virtual void processArgs(makVrv::DtVrvApplicationConfiguration &appConfig, StealthArgs &args, std::string &autoStartDriver)=0
DtCmdLine::ValueArg< std::string > * useFileCommChannel
Definition: vrfGuiCommandLineParser.h:173
virtual std::string driverName() const
DtCmdLine::ValueArg< std::string > * reportedHostAddress
Definition: vrfGuiCommandLineParser.h:89
virtual void addDisCommandArguments(std::vector< DtCmdLine::Arg * > &, makVrv::DtStealthCommandLineProcessor::StealthArgs &)
DtCmdLine::ValueArg< std::string > * fedFileName
Definition: vrfGuiCommandLineParser.h:125
DtCmdLine::MultiArg< std::string > * fomModule
Definition: vrfGuiCommandLineParser.h:153
The Stealth Application&#39;s command line processor.
Definition: DtStealthCommandLineProcessor.h:20
Definition: vrfGuiCommandLineParser.h:140
DtCmdLine::ValueArg< std::string > * hostAddress
Definition: vrfGuiCommandLineParser.h:128
DtCmdLine::ValueArg< std::string > * deviceAddress
Definition: vrfGuiCommandLineParser.h:87
DtCmdLine::ValueArg< std::string > * execName
Definition: vrfGuiCommandLineParser.h:124
virtual void addHla1516eCommandArguments(std::vector< DtCmdLine::Arg * > &, makVrv::DtStealthCommandLineProcessor::StealthArgs &)
boost::function< void(std::vector< DtCmdLine::Arg * > &, makVrv::DtStealthCommandLineProcessor::StealthArgs &)> DtAdditionalCommandsFcn
Definition: vrfGuiCommandLineParser.h:35
DtCmdLine::ValueArg< std::string > * hostAddress
Definition: vrfGuiCommandLineParser.h:104
DtCmdLine::ValueArg< std::string > * hostAddress
Definition: vrfGuiCommandLineParser.h:88
DtCmdLine::SwitchArg * hla1516eMode
Definition: vrfGuiCommandLineParser.h:164
DtCmdLine::SwitchArg * disableRemoteDiscovery
Definition: vrfGuiCommandLineParser.h:72
DtCmdLine::ValueArg< std::string > * layoutSettingsFile
Definition: vrfGuiCommandLineParser.h:176
std::vector< BaseArgs * > additionalArguments
Definition: vrfGuiCommandLineParser.h:189
virtual std::string driverName() const
DtCmdLine::ValueArg< std::string > * appIdRange
Definition: vrfGuiCommandLineParser.h:106
DtCmdLine::ValueArg< int > * appId
Definition: vrfGuiCommandLineParser.h:84
virtual std::string driverName() const
DtCmdLine::ValueArg< int > * port
Definition: vrfGuiCommandLineParser.h:98
DtCmdLine::ValueArg< std::string > * gui
Definition: vrfGuiCommandLineParser.h:170
This owns a list of display engine configurations.
Definition: DtVrvApplicationConfiguration.h:32
DtCmdLine::MultiArg< std::string > * pluginsToLoadArg
Definition: vrfGuiCommandLineParser.h:166
DtCmdLine::ValueArg< std::string > * sharedSettingsDirectory
Definition: vrfGuiCommandLineParser.h:182
DtCmdLine::ValueArg< int > * sessionId
Definition: vrfGuiCommandLineParser.h:107
DtCmdLine::ValueArg< std::string > * loadScenario
Definition: vrfGuiCommandLineParser.h:167
DtCmdLine::ValueArg< std::string > * federateName
Definition: vrfGuiCommandLineParser.h:154
virtual std::string driverClass() const
virtual std::string driverClass() const =0
std::map< std::string, DtAdditionalCommandsFcn > myAdditionalCommands
Definition: vrfGuiCommandLineParser.h:233
virtual void addAdditionalCommandLineArgument(DtCmdLine::Arg *addlArg)
Adds a new command line argument that will be added when parsing the command line. This class does not take memory ownership. It is up to the supplier of the argument to delete this argument.
Definition: vrfGuiCommandLineParser.h:117
DtCmdLine::ValueArg< int > * multicastTTL
Definition: vrfGuiCommandLineParser.h:112
DtCmdLine::ValueArg< std::string > * destinationAddress
Definition: vrfGuiCommandLineParser.h:101
DtCmdLine::SwitchArg * useIpv6
Definition: vrfGuiCommandLineParser.h:111
DtCmdLine::SwitchArg * processStateDataUponDiscovery
Definition: vrfGuiCommandLineParser.h:73
DtCmdLine::ValueArg< std::string > * reportedHostAddress
Definition: vrfGuiCommandLineParser.h:105
The MAK Stealth Application&#39;s command line processor.
Definition: vrfGuiCommandLineParser.h:31
DtCmdLine::SwitchArg * hla1516Mode
Definition: vrfGuiCommandLineParser.h:163
virtual void addHla13CommandArguments(std::vector< DtCmdLine::Arg * > &, makVrv::DtStealthCommandLineProcessor::StealthArgs &)
DtCmdLine::ValueArg< std::string > * federateType
Definition: vrfGuiCommandLineParser.h:135
The base implementation of a configuration.
Definition: DtConfiguration.h:24
virtual void createDriver(const makVrv::DtVrvApplicationConfiguration &, const makVrv::DtConfiguration &, BaseArgs *, std::string &autoStarted)
Removes all existing drivers created by VR-Forces from the drivers path and creates a new driver...
virtual void addHlaCommandArguments(std::vector< DtCmdLine::Arg * > &a, makVrv::DtStealthCommandLineProcessor::StealthArgs &args, Hla13Args *hlaArgs)
std::string myAutoStartDriver
Definition: vrfGuiCommandLineParser.h:234
DtCmdLine::ValueArg< std::string > * serverAddress
Definition: vrfGuiCommandLineParser.h:86
Contains makVrv::DtStealthCommandLineProcessor class.
DtCmdLine::ValueArg< std::string > * fomMapperLibName
Definition: vrfGuiCommandLineParser.h:126
DtCmdLine::SwitchArg * hla13Mode
Definition: vrfGuiCommandLineParser.h:162
DtCmdLine::SwitchArg * useGeographicDdm
Definition: vrfGuiCommandLineParser.h:134
DtCmdLine::ValueArg< std::string > * subnetMask
Definition: vrfGuiCommandLineParser.h:103
std::map< std::string, std::string > ObserverModeBindings
Definition: vrfGuiApplication.h:50
bool myAllowObserverModeFlags
Definition: vrfGuiCommandLineParser.h:235
DtCmdLine::ValueArg< double > * defaultObjectTimeout
Definition: vrfGuiCommandLineParser.h:114
virtual std::string driverName() const
const std::string & autoStartDriver() const
Definition: vrfGuiCommandLineParser.h:54
DtCmdLine::SwitchArg * disMode
Definition: vrfGuiCommandLineParser.h:160
DtCmdLine::ValueArg< std::string > * loadSimulationObjectGroup
Definition: vrfGuiCommandLineParser.h:174
DtCmdLine::ValueArg< int > * port
Definition: vrfGuiCommandLineParser.h:82
DtCmdLine::ValueArg< int > * exerciseId
Definition: vrfGuiCommandLineParser.h:99
DtVrfGuiCommandLineParser * myParser
Definition: vrfGuiCommandLineParser.h:66
virtual void setupHlaConfiguration(makVrv::DtConfiguration &config, StealthArgs &args)
virtual void bindObserverModes(const std::vector< std::string > &, makVrf::DtVrfGuiApplication::ObserverModeBindings &) const
Parses the observer modes binding line and places result in map. Format is Observer, Mode.
DtCmdLine::SwitchArg * pvdModeOnly
Experimental command line arguments. Available in debug mode only.
Definition: vrfGuiCommandLineParser.h:186

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)