WSF
WsfStandardApplication.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFSTANDARDAPPLICATION_HPP
13#define WSFSTANDARDAPPLICATION_HPP
14
15#include "wsf_export.h"
16
17#include "PakLogServerSubscriber.hpp"
18#include "WsfApplication.hpp"
19
27{
28public:
31 {
32 public:
33 InvalidCommandLineArgument(const std::string& aToken);
34 ~InvalidCommandLineArgument() override = default;
35 };
36
39 {
40 public:
41 InputProcessingFailure(const std::string& aWhat, bool aIsExpected);
42 ~InputProcessingFailure() override = default;
43 };
44
47 {
50 bool mResetRequested = false;
51 };
52
60
69
72 {
74 bool mFlushIO = false;
75 std::vector<std::string> mInputFiles;
77 double mMessageInterval = 1000.0;
80 };
81
82 WsfStandardApplication(const std::string& aApplicationName,
83 int argc,
84 char* argv[],
85 const PluginPaths& aPluginPaths = PluginPaths());
86 ~WsfStandardApplication() override = default;
87
88 void ShowUsage();
89
90 void ProcessCommandLine(Options& aOptions);
91
92 void ProcessCommandLine(Options& aOptions, int argc, char* argv[]);
93
94 void ProcessCommandLineCommands(WsfScenario& aScenario, const Options& aOptions);
95
96 void ProcessInputFiles(WsfScenario& aScenario, const std::vector<std::string>& aFileList);
97
98 virtual std::unique_ptr<WsfSimulation> CreateSimulation(WsfScenario& aScenario,
99 SimType aSimulationType,
100 unsigned int aRunNumber);
101 virtual std::unique_ptr<WsfSimulation> CreateSimulation(WsfScenario& aScenario,
102 const Options& aOptions,
103 unsigned int aRunNumber);
104
105 bool InitializeSimulation(WsfSimulation* aSimPtr);
106
108
109protected:
111 log_server::LogSubscriber mLogServer;
112 std::string mLogServerHost = "localhost";
113 int mLogServerPort = 18888;
115 virtual std::string GetUsageString() const;
116 void UpdateOptionsP(Options& aOptions, WsfSimulation* aSimPtr);
117
118private:
120 void ConnectToLogServer();
121};
122
123#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Exception(const std::string &aWhat)
Definition WsfApplication.hpp:53
std::list< std::string > PluginPaths
Definition WsfApplication.hpp:74
WsfApplication(const std::string &aApplicationName, int aArgc, char *aArgv[], const PluginPaths &aPluginPaths=PluginPaths())
Definition WsfApplication.cpp:47
friend class WsfScenario
Definition WsfApplication.hpp:46
The main controller for a simulation.
Definition WsfSimulation.hpp:109
InputProcessingFailure(const std::string &aWhat, bool aIsExpected)
Definition WsfStandardApplication.cpp:630
InvalidCommandLineArgument(const std::string &aToken)
Definition WsfStandardApplication.cpp:623
SimType
The simulation type requested from the command line.
Definition WsfStandardApplication.hpp:55
@ cREAL_TIME
'-rt' was specified
Definition WsfStandardApplication.hpp:58
@ cFRAME_STEPPED
'-fs' was specified
Definition WsfStandardApplication.hpp:57
@ cEVENT_STEPPED
'-es' was specified
Definition WsfStandardApplication.hpp:56
void UpdateOptionsP(Options &aOptions, WsfSimulation *aSimPtr)
Definition WsfStandardApplication.cpp:572
log_server::LogSubscriber mLogServer
Log Server members.
Definition WsfStandardApplication.hpp:111
void ProcessCommandLineCommands(WsfScenario &aScenario, const Options &aOptions)
Definition WsfStandardApplication.cpp:217
virtual std::string GetUsageString() const
Definition WsfStandardApplication.cpp:549
WsfStandardApplication(const std::string &aApplicationName, int argc, char *argv[], const PluginPaths &aPluginPaths=PluginPaths())
Definition WsfStandardApplication.cpp:40
bool mShouldConnectToLogServer
Definition WsfStandardApplication.hpp:114
SimulationResult RunEventLoop(WsfSimulation *aSimPtr, Options aOptions)
Definition WsfStandardApplication.cpp:404
void ShowUsage()
Displays the application command-line usage.
Definition WsfStandardApplication.cpp:51
void ProcessInputFiles(WsfScenario &aScenario, const std::vector< std::string > &aFileList)
Definition WsfStandardApplication.cpp:279
RunMode
The type of run from the command line.
Definition WsfStandardApplication.hpp:63
@ cWRITE_GRAMMAR
Write the grammar file out, used by the IDE.
Definition WsfStandardApplication.hpp:67
@ cSHOW_USAGE
Show command line options and exit.
Definition WsfStandardApplication.hpp:66
@ cRUN_SCENARIO
Run the scenario (implied if no other command specified).
Definition WsfStandardApplication.hpp:64
@ cLIST_VARIABLES
List the preprocessor variables.
Definition WsfStandardApplication.hpp:65
void ProcessCommandLine(Options &aOptions)
Definition WsfStandardApplication.cpp:71
~WsfStandardApplication() override=default
bool InitializeSimulation(WsfSimulation *aSimPtr)
Definition WsfStandardApplication.cpp:360
int mLogServerPort
Definition WsfStandardApplication.hpp:113
std::string mLogServerHost
Definition WsfStandardApplication.hpp:112
virtual std::unique_ptr< WsfSimulation > CreateSimulation(WsfScenario &aScenario, SimType aSimulationType, unsigned int aRunNumber)
Definition WsfStandardApplication.cpp:323
Application options; Command line or otherwise.
Definition WsfStandardApplication.hpp:72
std::vector< std::string > mInputFiles
Definition WsfStandardApplication.hpp:75
RunMode mRunMode
Definition WsfStandardApplication.hpp:79
double mRealtimeMessageInterval
Definition WsfStandardApplication.hpp:78
double mDeferredConnectionTime
Definition WsfStandardApplication.hpp:76
SimType mSimType
Definition WsfStandardApplication.hpp:73
bool mFlushIO
Definition WsfStandardApplication.hpp:74
double mMessageInterval
Definition WsfStandardApplication.hpp:77
The result of simulation execution.
Definition WsfStandardApplication.hpp:47
bool mResetRequested
Definition WsfStandardApplication.hpp:50
Copyrights Multiple, All Rights Reserved