SourceXtractorPlusPlus
0.11
Please provide a description of the project.
SEFramework
SEFramework
Task
TaskProvider.h
Go to the documentation of this file.
1
23
#ifndef _SEFRAMEWORK_TASK_TASKPROVIDER_H
24
#define _SEFRAMEWORK_TASK_TASKPROVIDER_H
25
26
#include <memory>
27
#include <unordered_map>
28
29
#include "
ElementsKernel/Exception.h
"
30
31
#include "
SEFramework/Property/PropertyId.h
"
32
#include "
SEFramework/Task/TaskFactory.h
"
33
#include "
SEFramework/Task/TaskFactoryRegistry.h
"
34
35
namespace
SourceXtractor
{
36
42
class
TaskProvider
{
43
44
public
:
45
47
virtual
~TaskProvider
() =
default
;
48
49
TaskProvider
(
std::shared_ptr<TaskFactoryRegistry>
task_factory_registry)
50
:
m_task_factory_registry
(task_factory_registry) {}
51
53
template
<
class
T>
54
std::shared_ptr<const T>
getTask
(
const
PropertyId
& property_id)
const
{
55
return
std::dynamic_pointer_cast<const T>(
getTask
(property_id));
56
}
57
protected
:
59
virtual
std::shared_ptr<const Task>
getTask
(
const
PropertyId
& property_id)
const
;
60
61
private
:
62
std::shared_ptr<TaskFactoryRegistry>
m_task_factory_registry
;
63
std::unordered_map<PropertyId, std::shared_ptr<Task>
>
m_tasks
;
64
65
};
/* End of TaskProvider class */
66
67
68
}
/* namespace SourceXtractor */
69
70
71
#endif
PropertyId.h
TaskFactory.h
std::shared_ptr< TaskFactoryRegistry >
SourceXtractor::TaskProvider::getTask
std::shared_ptr< const T > getTask(const PropertyId &property_id) const
Template version of getTask() that includes casting the returned pointer to the appropriate type.
Definition:
TaskProvider.h:54
TaskFactoryRegistry.h
SourceXtractor::TaskProvider
Definition:
TaskProvider.h:42
SourceXtractor::PropertyId
Identifier used to set and retrieve properties.
Definition:
PropertyId.h:40
SourceXtractor::TaskProvider::~TaskProvider
virtual ~TaskProvider()=default
Destructor.
SourceXtractor
Definition:
Aperture.h:30
Exception.h
SourceXtractor::TaskProvider::m_tasks
std::unordered_map< PropertyId, std::shared_ptr< Task > > m_tasks
Definition:
TaskProvider.h:63
SourceXtractor::TaskProvider::TaskProvider
TaskProvider(std::shared_ptr< TaskFactoryRegistry > task_factory_registry)
Definition:
TaskProvider.h:49
std::unordered_map
STL class.
SourceXtractor::TaskProvider::m_task_factory_registry
std::shared_ptr< TaskFactoryRegistry > m_task_factory_registry
Definition:
TaskProvider.h:62
Generated by
1.8.18