Class ExecutableBase
Defined in File ExecutableBase.h
Inheritance Relationships
Base Types
public mrpt::system::COutputLogger
public mrpt::rtti::CObject
private std::enable_shared_from_this< ExecutableBase >
Derived Types
public mola::BackEndBase
(Class BackEndBase)public mola::FrontEndBase
(Class FrontEndBase)public mola::NavStateFilter
(Class NavStateFilter)public mola::RawDataSourceBase
(Class RawDataSourceBase)public mola::WorldModel
(Class WorldModel)
Class Documentation
-
class ExecutableBase : public mrpt::system::COutputLogger, public mrpt::rtti::CObject, private std::enable_shared_from_this<ExecutableBase>
Base virtual class for all executable (nodelet-like) units inside a SLAM system.
Subclassed by mola::BackEndBase, mola::FrontEndBase, mola::NavStateFilter, mola::RawDataSourceBase, mola::WorldModel
Directory services
{
-
std::function<Ptr(const std::string&)> nameServer_
A name server function to search for other ExecutableBase objects in my running system. Empty during ctor, should be usable from initialize_common() and initialize().
See also
Note
In a standard system, this is implemented by MolaLauncherApp::nameServerImpl()
-
template<class Interface>
std::vector<Ptr> findService() const Finds (an)other ExecutableBase(s) by its expected Interface, that is, a virtual base class.
See also
-
void setModuleInstanceName(const std::string &s)
-
std::string getModuleInstanceName() const
Virtual interface of any ExecutableBase
{
-
virtual void initialize(const Yaml &cfg) = 0
This must be implemented to read all the required parameters
-
virtual void spinOnce() = 0
Runs any required action on a timely manner
-
inline virtual int launchOrderPriority() const
Modules will be initialized in the order determined by:
First: the “order priority”, which is the number returned here.
Second: modules with the same “priority”, will be sorted by ascending lexicographical order or their “instance names”.
-
inline virtual void onQuit()
Called while destroying the SLAM system. A perfect placeholder for saving data to filesystem, clean up, etc. before any module destructor has been actually beeing invoked.
names_values Is a YAML map from <tt>names</tt> to <tt>values</tt>.
Called by an external entity to change parameters of this module.
See also
Note
New in MOLA v1.4.0
-
inline virtual void onParameterUpdate([[maybe_unused]] const mrpt::containers::yaml &names_values)
-
mrpt::containers::yaml getModuleParameters() const
Returns the current list of all known parameters and their values, in the same format than used in exposeParameters(). An empty YAML map will be returned if no parameter exists.
See also
changeParameters()
Note
New in MOLA v1.4.0
-
void changeParameters(const mrpt::containers::yaml &names_values)
-
void exposeParameters(const mrpt::containers::yaml &names_values)
Public Functions
-
ExecutableBase()
-
virtual ~ExecutableBase()
-
inline Ptr getAsPtr()
Get as shared_ptr via enable_shared_from_this<>
-
inline bool requestedShutdown() const
Public Members
-
std::optional<ProfilerSaverAtDtor> profiler_dtor_save_stats_
Enabled from mola-cli with
--profiler-whole
to save full profile stats to .m files at program end.
-
Profiler profiler_ = {false}
Time profiler (disabled by default). All profilers can be globally enabled from MolaLauncherApp.
Public Static Functions
-
static Ptr Factory(const std::string &classname)
Class factory. Register using MOLA_REGISTER_MODULE()
Protected Functions
-
inline void requestShutdown()
-
std::function<Ptr(const std::string&)> nameServer_