TaskFactory
TaskFactory
#include <icy/sched/taskfactory.h>class TaskFactoryDefined in src/sched/include/icy/sched/taskfactory.h:49
The TaskFactory can dynamically instantiate registered sched::Task and sched::Trigger classes from named strings.
List of all members
| Name | Kind | Owner |
|---|---|---|
createTask | function | Declared here |
registerTask | function | Declared here |
unregisterTask | function | Declared here |
tasks | function | Declared here |
createTrigger | function | Declared here |
registerTrigger | function | Declared here |
unregisterTrigger | function | Declared here |
triggers | function | Declared here |
getDefault | function | Declared here |
_mutex | variable | Declared here |
_tasks | variable | Declared here |
_triggers | variable | Declared here |
TaskMap | typedef | Declared here |
TriggerMap | typedef | Declared here |
Public Methods
| 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. |
createTask
inline
inline std::unique_ptr< sched::Task > createTask(const std::string & type)Defined in src/sched/include/icy/sched/taskfactory.h:67
Instantiates and returns a registered task by type name.
Parameters
typeRegistered type name.
Returns
Owning pointer to the new task instance.
Exceptions
std::runtime_erroriftypeis not registered.
registerTask
inline
template<typename T> inline void registerTask(const std::string & type)Defined in src/sched/include/icy/sched/taskfactory.h:81
Registers a task type T under the given name. Subsequent calls to createTask() with this type will return a T instance.
Parameters
TConcrete subclass of sched::Task with a default constructor.
Parameters
typeType name string to register.
unregisterTask
inline
inline void unregisterTask(const std::string & type)Defined in src/sched/include/icy/sched/taskfactory.h:89
Removes the task registration for type. No-op if not registered.
Parameters
typeType name to deregister.
tasks
const inline
inline TaskMap tasks() constDefined in src/sched/include/icy/sched/taskfactory.h:99
Returns a snapshot copy of the registered task map.
createTrigger
inline
inline std::unique_ptr< sched::Trigger > createTrigger(const std::string & type)Defined in src/sched/include/icy/sched/taskfactory.h:114
Instantiates and returns a registered trigger by type name.
Parameters
typeRegistered type name.
Returns
Owning pointer to the new trigger instance.
Exceptions
std::runtime_erroriftypeis not registered.
registerTrigger
inline
template<typename T> inline void registerTrigger(const std::string & type)Defined in src/sched/include/icy/sched/taskfactory.h:127
Registers a trigger type T under the given name.
Parameters
TConcrete subclass of sched::Trigger with a default constructor.
Parameters
typeType name string to register.
unregisterTrigger
inline
inline void unregisterTrigger(const std::string & type)Defined in src/sched/include/icy/sched/taskfactory.h:135
Removes the trigger registration for type. No-op if not registered.
Parameters
typeType name to deregister.
triggers
const inline
inline TriggerMap triggers() constDefined in src/sched/include/icy/sched/taskfactory.h:145
Returns a snapshot copy of the registered trigger map.
Public Static Methods
| Return | Name | Description |
|---|---|---|
TaskFactory & | getDefault static inline | Returns the default TaskFactory singleton. |
getDefault
static inline
static inline TaskFactory & getDefault()Defined in src/sched/include/icy/sched/taskfactory.h:53
Returns the default TaskFactory singleton.
Protected Attributes
_mutex
std::mutex _mutexDefined in src/sched/include/icy/sched/taskfactory.h:152
_tasks
TaskMap _tasksDefined in src/sched/include/icy/sched/taskfactory.h:154
_triggers
TriggerMap _triggersDefined in src/sched/include/icy/sched/taskfactory.h:155
Public Types
| Name | Description |
|---|---|
TaskMap | Scheduled Tasks. |
TriggerMap | Schedule Triggers. |
TaskMap
using TaskMap = std::map< std::string, std::unique_ptr< sched::Task >(*)()>Defined in src/sched/include/icy/sched/taskfactory.h:61
Scheduled Tasks.
TriggerMap
using TriggerMap = std::map< std::string, std::unique_ptr< sched::Trigger >(*)()>Defined in src/sched/include/icy/sched/taskfactory.h:108
Schedule Triggers.
