SourceXtractorPlusPlus  0.15
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TaskFactory.h
Go to the documentation of this file.
1 
23 #ifndef _SEFRAMEWORK_TASK_TASKFACTORY_H
24 #define _SEFRAMEWORK_TASK_TASKFACTORY_H
25 
26 #include <vector>
27 #include <memory>
28 
30 #include "SEFramework/Task/Task.h"
33 
34 namespace SourceXtractor {
35 
42 class TaskFactory : public Configurable {
43 
44 public:
45 
47  virtual ~TaskFactory() = default;
48 
50  virtual std::shared_ptr<Task> createTask(const PropertyId& property_id) const = 0;
51 
52  // Provides a default implementation of the Configurable interface that does nothing
55 
57  // By default do nothing
58  }
59 
60 private:
61 
62 }; /* End of TaskFactory class */
63 
64 } /* namespace SourceXtractor */
65 
66 
67 #endif
virtual std::shared_ptr< Task > createTask(const PropertyId &property_id) const =0
Returns a Task producing a Property corresponding to the given PropertyId.
Interface of objects which can be configured.
Definition: Configurable.h:37
Creates a Task for computing a given property.
Definition: TaskFactory.h:42
Identifier used to set and retrieve properties.
Definition: PropertyId.h:40
void reportConfigDependencies(Euclid::Configuration::ConfigManager &) const override
Registers all the Configuration dependencies.
Definition: TaskFactory.h:53
void configure(Euclid::Configuration::ConfigManager &) override
Method which should initialize the object.
Definition: TaskFactory.h:54
virtual void registerPropertyInstances(OutputRegistry &)
Definition: TaskFactory.h:56
virtual ~TaskFactory()=default
Destructor.