12#ifndef WSFAPPLICATION_HPP
13#define WSFAPPLICATION_HPP
15#include "wsf_export.h"
23#include "UtException.hpp"
87 void GetCommandLineArguments(
int& aArgc,
char**& aArgv);
89 void RemoveCommandLineOptions(
int aArgc,
int aArgCount);
95 void RegisterExtension(
const std::string& aName, std::unique_ptr<WsfApplicationExtension> aExtensionPtr);
97 void ExtensionDepends(
const std::string& aExtensionName,
const std::string& aDependsOnExtensionName,
bool aRequired);
99 bool ExtensionIsRegistered(
const std::string& aName)
const;
129 void RegisterFeature(
const std::string& aFeature,
const std::string& aProjectName = std::string());
154 void RegisterDefaultFeatures();
159 bool InitializeTestEnvironment();
165 std::string mApplicationName;
168 std::vector<char*> mArgv;
174 std::vector<Feature> mRegisteredFeatures;
180 UtScriptTypes* mScriptTypesPtr;
186 std::recursive_mutex mMutex;
189 bool mIsTestingEnabled;
212#define WSF_REGISTER_EXTENSION(APP, NAME) \
213 extern void Register_##NAME(WsfApplication& aApplication); \
214 Register_##NAME(APP);
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfApplicationExtension.hpp:86
int mReturnCode
Definition WsfApplication.hpp:62
int GetReturnCode() const
Definition WsfApplication.hpp:59
Exception(const std::string &aWhat)
Definition WsfApplication.hpp:53
FeatureNotPresent(bool aTestingEnabled)
Definition WsfApplication.cpp:348
~FeatureNotPresent() override=default
Definition WsfApplication.hpp:45
UtScriptTypes * GetScriptTypes() const
Return a pointer to the script types/classes.
Definition WsfApplication.hpp:138
std::list< std::string > PluginPaths
Definition WsfApplication.hpp:74
const WsfExtensionList & GetExtensions() const
Returns all extension dependencies, added by ExtensionDepends().
Definition WsfApplication.hpp:104
WsfSystemLog & GetSystemLog()
Return a reference to the system log.
Definition WsfApplication.hpp:141
const std::string & GetApplicationName() const
Return the name of the application.
Definition WsfApplication.hpp:83
WsfApplication(const std::string &aApplicationName, int aArgc, char *aArgv[], const PluginPaths &aPluginPaths=PluginPaths())
Definition WsfApplication.cpp:47
bool IsTestingEnabled() const
Returns 'true' if application is executing under the control of an automated test executive.
Definition WsfApplication.hpp:147
const std::vector< Feature > & GetRegisteredFeatures()
Returns a list of registered features.
Definition WsfApplication.hpp:132
friend class WsfScenario
Definition WsfApplication.hpp:46
void RegisterFeature(const std::string &aFeature, const std::string &aProjectName=std::string())
Definition WsfApplication.cpp:224
Definition WsfExtensionList.hpp:46
Definition WsfPluginManager.hpp:40
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfSystemLog.hpp:28
An application feature, used for test if features exist.
Definition WsfApplication.hpp:122
std::string mName
Name of the feature.
Definition WsfApplication.hpp:124
std::string mProject
Name of the project which implements the feature.
Definition WsfApplication.hpp:126