18 #ifndef MAUVE_RUNTIME_SHELL_HPP 19 #define MAUVE_RUNTIME_SHELL_HPP 21 #include "HasProperty.hpp" 22 #include "HasPort.hpp" 23 #include "AbstractPort.hpp" 24 #include "ShellContainer.hpp" 25 #include "WithLogger.hpp" 26 #include "Configurable.hpp" 27 #include "WithHook.hpp" 28 #include "WithName.hpp" 33 #include <type_traits> 59 template <
typename S,
typename C,
typename F>
61 template <
typename S,
typename C,
typename I>
79 inline bool is_configured() const override final {
return _configured; }
93 virtual std::string
name() const override final {
94 return this->_container->
name(); };
100 virtual ~Shell() noexcept;
116 std::ostream& operator<<(std::ostream& out,
Shell const & shell);
virtual std::string name() const =0
Get the name.
std::string type_name() const
Get the Shell type name.
Definition: ShellContainer.hpp:28
Shell()
Default constructor.
Definition: HasProperty.hpp:53
Object with a name.
Definition: WithName.hpp:27
Objects with hooks.
Definition: WithHook.hpp:27
Object with a Logger.
Definition: WithLogger.hpp:27
Component class.
Definition: Architecture.hpp:34
AbstractLogger & logger() const override
Get the logger.
Definition: Shell.hpp:77
Class of a generic MAUVE logger.
Definition: logger.hpp:39
Definition: HasPort.hpp:41
The MAUVE namespace.
Definition: tracing.hpp:24
virtual bool cleanup_shell()=0
Clean up the shell.
virtual AbstractLogger & logger() const =0
Get the logger.
Definition: Architecture.hpp:38
Configurable trait.
Definition: Configurable.hpp:25
void print_model(std::ostream &out) const
Print the Shell model.
A Shell is the interface of a component.
Definition: Shell.hpp:48
virtual ~Shell() noexcept
Default destructor.
void cleanup() overridefinal
Cleanup the object.
Definition: Shell.hpp:82
virtual std::string name() const overridefinal
Get Component name.
Definition: Shell.hpp:93
virtual bool configure_shell()=0
Configure th shell.
bool configure() overridefinal
Configure the object.
Definition: Shell.hpp:81
bool is_configured() const overridefinal
Get the configuration status of the configurable object.
Definition: Shell.hpp:79