SourceXtractorPlusPlus
0.15
Please provide a description of the project.
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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
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
SourceXtractor::TaskProvider::m_tasks
std::unordered_map< PropertyId, std::shared_ptr< Task > > m_tasks
Definition:
TaskProvider.h:63
PropertyId.h
SourceXtractor::TaskProvider::TaskProvider
TaskProvider(std::shared_ptr< TaskFactoryRegistry > task_factory_registry)
Definition:
TaskProvider.h:49
std::dynamic_pointer_cast
T dynamic_pointer_cast(T...args)
SourceXtractor::PropertyId
Identifier used to set and retrieve properties.
Definition:
PropertyId.h:40
SourceXtractor::TaskProvider
Definition:
TaskProvider.h:42
SourceXtractor::TaskProvider::m_task_factory_registry
std::shared_ptr< TaskFactoryRegistry > m_task_factory_registry
Definition:
TaskProvider.h:62
TaskFactory.h
SourceXtractor::TaskProvider::~TaskProvider
virtual ~TaskProvider()=default
Destructor.
Exception.h
TaskFactoryRegistry.h
std::unordered_map
STL class.
Generated by
1.8.5