#include <icy/sched/taskfactory.h>The TaskFactory can dynamically instantiate registered sched::Task and sched::Trigger classes from named strings.
| Return | Name | Description |
|---|---|---|
std::unique_ptr< sched::Task > | createTask inline | Instantiates and returns a registered task by type name. |
void | registerTask inline | Registers a task type T under the given name. Subsequent calls to createTask() with this type will return a T instance. |
void | unregisterTask inline | Removes the task registration for type. No-op if not registered. |
TaskMap | tasks const inline | Returns a snapshot copy of the registered task map. |
std::unique_ptr< sched::Trigger > | createTrigger inline | Instantiates and returns a registered trigger by type name. |
void | registerTrigger inline | Registers a trigger type T under the given name. |
void | unregisterTrigger inline | Removes the trigger registration for type. No-op if not registered. |
TriggerMap | triggers const inline | Returns a snapshot copy of the registered trigger map. |
inline
inline std::unique_ptr< sched::Task > createTask(const std::string & type)Instantiates and returns a registered task by type name.
type Registered type name.Owning pointer to the new task instance.
std::runtime_error if type is not registered.inline
template<typename T> inline void registerTask(const std::string & type)Registers a task type T under the given name. Subsequent calls to createTask() with this type will return a T instance.
T Concrete subclass of sched::Task with a default constructor.type Type name string to register.inline
inline void unregisterTask(const std::string & type)Removes the task registration for type. No-op if not registered.
type Type name to deregister.const inline
inline TaskMap tasks() constReturns a snapshot copy of the registered task map.
inline
inline std::unique_ptr< sched::Trigger > createTrigger(const std::string & type)Instantiates and returns a registered trigger by type name.
type Registered type name.Owning pointer to the new trigger instance.
std::runtime_error if type is not registered.inline
template<typename T> inline void registerTrigger(const std::string & type)Registers a trigger type T under the given name.
T Concrete subclass of sched::Trigger with a default constructor.type Type name string to register.inline
inline void unregisterTrigger(const std::string & type)Removes the trigger registration for type. No-op if not registered.
type Type name to deregister.const inline
inline TriggerMap triggers() constReturns a snapshot copy of the registered trigger map.
| Return | Name | Description |
|---|---|---|
TaskFactory & | getDefault static inline | Returns the default TaskFactory singleton. |
static inline
static inline TaskFactory & getDefault()Returns the default TaskFactory singleton.
std::mutex _mutexTaskMap _tasksTriggerMap _triggers| Name | Description |
|---|---|
TaskMap | Scheduled Tasks. |
TriggerMap | Schedule Triggers. |
std::map< std::string, std::unique_ptr< sched::Task >(*)()> TaskMap()Scheduled Tasks.
std::map< std::string, std::unique_ptr< sched::Trigger >(*)()> TriggerMap()Schedule Triggers.