SourceXtractorPlusPlus  0.10
Please provide a description of the project.
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 
30 
34 
35 namespace SourceXtractor {
36 
42 class TaskProvider {
43 
44 public:
45 
47  virtual ~TaskProvider() = default;
48 
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:
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