18 #ifndef MAUVE_RUNTIME_ABSTRACT_DEPLOYER_HPP 19 #define MAUVE_RUNTIME_ABSTRACT_DEPLOYER_HPP 28 #define DEPLOYER_SIG SIGINT 34 class AbstractComponent;
35 class AbstractDeployer;
49 template <
typename ARCHI>
101 time_ns_t
now()
const;
162 bool start(std::string name, time_ns_t start_time);
186 bool stop(std::string name);
208 template <
typename ARCHI>
211 std::map<AbstractComponent*, Task*> tasks;
212 time_ns_t start_time;
225 #endif // MAUVE_RUNTIME_ABSTRACT_DEPLOYER_HPP AbstractDeployer * mk_abstract_deployer(ARCHI *architecture, Manager< ARCHI > *manager=nullptr)
Build the application Deployer from an architecture.
Definition: Deployer.ipp:29
AbstractDeployer()
Constructor.
Class of a MAUVE logger for the deployer.
Definition: logger.hpp:230
time_ns_t now() const
Get current deployer time.
bool start()
Start all tasks.
virtual Architecture * get_architecture()=0
Get the deployer architecture.
time_ns_t get_time() const
Get deployer reference time.
Task * get_task(AbstractComponent *component)
Get the task associated to a component.
virtual ~AbstractDeployer() noexcept
Destructor.
bool start_deployer()
Start only the Deployer.
Architecture class.
Definition: Architecture.hpp:41
void mk_python_deployer()
Create the Deployer for access from the python binding.
DeployerLogger * logger()
Access to deployer logger.
Definition: AbstractDeployer.hpp:197
Abstract Deployer class.
Definition: AbstractDeployer.hpp:55
friend AbstractDeployer * mk_abstract_deployer(ARCHI *a, Manager< ARCHI > *m)
Build the application Deployer from an architecture.
Definition: Deployer.ipp:29
The MAUVE namespace.
Definition: tracing.hpp:24
bool create_tasks()
Create all tasks.
static AbstractDeployer * instance()
Get the Deployer instance.
Definition: AbstractDeployer.hpp:60
static AbstractDeployer * deployer
The singleton Deployer instance.
Definition: AbstractDeployer.hpp:203
void clear_tasks()
Clear the tasks.
DeployerLogger * _logger
The Deployer logger.
Definition: AbstractDeployer.hpp:205
bool create_task(AbstractComponent *component)
Create one task.
bool clear_task(AbstractComponent *component)
Clear component task.
virtual std::vector< std::string > manager_actions() const =0
Get the list of Manager actions.
Definition: AbstractDeployer.hpp:40
virtual bool manager_apply(std::string name)=0
Apply a Manager action.
bool activate()
Activate all tasks.
Abstract Component class.
Definition: AbstractComponent.hpp:43
A system Task that executes a component.
Definition: Task.hpp:46