TaskFactory
#include <icy/sched/taskfactory.h>
class TaskFactoryDefined in src/sched/include/icy/sched/taskfactory.h:49
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.
Returns
Owning pointer to the new task instance.
Parameters
| Parameter | Type | Description |
|---|---|---|
type | const std::string & | Registered type name. |
Exceptions
| Exception | Description |
|---|---|
std::runtime_error | if type is 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
| Parameter | Type | Description |
|---|---|---|
type | const std::string & | Type 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
| Parameter | Type | Description |
|---|---|---|
type | const std::string & | Type 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.
Returns
Owning pointer to the new trigger instance.
Parameters
| Parameter | Type | Description |
|---|---|---|
type | const std::string & | Registered type name. |
Exceptions
| Exception | Description |
|---|---|
std::runtime_error | if type is 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
| Parameter | Type | Description |
|---|---|---|
type | const std::string & | Type 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
| Parameter | Type | Description |
|---|---|---|
type | const std::string & | Type 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
| Return | Name | Description |
|---|---|---|
std::mutex | _mutex | |
TaskMap | _tasks | |
TriggerMap | _triggers |
_mutex
std::mutex _mutexDefined in src/sched/include/icy/sched/taskfactory.h:152
_tasks
TaskMap _tasksType: TaskMap
Defined in src/sched/include/icy/sched/taskfactory.h:154
_triggers
TriggerMap _triggersType: TriggerMap
Defined 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 >(*)()>Type: 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 >(*)()>Type: std::map< std::string, std::unique_ptr< sched::Trigger >(*)()>
Defined in src/sched/include/icy/sched/taskfactory.h:108
Schedule Triggers.
