30#include <Ice/Properties.h>
32#include <SimoxUtility/algorithm/string/string_tools.h>
43 using simox::alg::ends_with;
47 return simox::alg::replace_last(executableName,
"Run",
"");
52 return simox::alg::replace_last(executableName,
"_run",
"");
55 return executableName;
59 std::string executablePath,
60 std::string packageName) :
62 executableName(executableName),
63 executablePath(executablePath),
64 packageName(packageName),
77 name(application.name),
78 executableName(application.executableName),
79 executablePath(application.executablePath),
80 packageName(application.packageName),
81 found(application.found.load()),
100 return this->executablePath;
127 properties->setDescription(name +
" properties");
143 found = std::filesystem::exists(executablePath / executableName, ec);
195 return executableName;
201 return executablePath / executableName;
Class containing data about an application Provides methods to get and set the date contained in the ...
bool isDefaultPropertyEnabled(std::string name)
std::string getExecutableAbsPath()
void setProperties(armarx::PropertyDefinitionsPtr properties)
Sets the properties of this application.
std::mutex propertiesMutex
Guards properties, enabledMap and defaultMap.
void setDefaultPropertyEnabled(std::string name, bool enabled)
bool isDefaultProperty(std::string name)
std::string getPackageName()
std::string getExecutableName()
armarx::PropertyDefinitionsPtr properties
Application(std::string name, std::string executablePath, std::string packageName)
Constructor that sets the name and the path to the executable of the application.
PropertyEnabledMap defaultMap
void updateFound()
Checks whether the executable exists and caches the result for getFound().
PropertyEnabledMap enabledMap
void setIsDefaultProperty(std::string name, bool defaultValue)
armarx::PropertyDefinitionsPtr getProperties()
std::string getPathToExecutable()
IceProperties stores ice properties and resolves property inheritance.
virtual void setInheritanceSolver(const InheritanceSolverPtr &inheritanceSolver)
Sets an inheritance solver in case of testing or using a non-default solver.
static Ice::PropertiesPtr create(const Ice::PropertiesPtr &iceProperties=nullptr)
PropertyDefinitionContainer.
::IceInternal::Handle<::Ice::Properties > PropertiesPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
bool ends_with(const std::string &haystack, const std::string &needle)
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
std::string prettify(const std::string &executableName)