SourceXtractorPlusPlus  0.15
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SaturateFlagTaskFactory.h
Go to the documentation of this file.
1 
17 /*
18  * Copyright (C) 2012-2020 Euclid Science Ground Segment
19  *
20  * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General
21  * Public License as published by the Free Software Foundation; either version 3.0 of the License, or (at your option)
22  * any later version.
23  *
24  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
25  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
26  * details.
27  *
28  * You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to
29  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
30  */
31 
38 #ifndef _SEIMPLEMENTATION_PLUGIN_SATURATEFLAGTASKFACTORY_H_
39 #define _SEIMPLEMENTATION_PLUGIN_SATURATEFLAGTASKFACTORY_H_
40 
43 
44 namespace SourceXtractor {
45 
47 public:
49 
50  virtual ~SaturateFlagTaskFactory() = default;
51 
52  // TaskFactory implementation
53  virtual std::shared_ptr<Task> createTask(const PropertyId &property_id) const {
54  if (property_id.getTypeId() == typeid(SaturateFlag)) {
55  return std::make_shared<SaturateFlagSourceTask>(property_id.getIndex());
56  } else {
57  return nullptr;
58  }
59  }
60 }; // end of SourceFlagsTaskFactory class
61 
62 } // namespace SourceXtractor
63 #endif /* _SEIMPLEMENTATION_PLUGIN_SATURATEFLAGTASKFACTORY_H_ */
unsigned int getIndex() const
Definition: PropertyId.h:70
Creates a Task for computing a given property.
Definition: TaskFactory.h:42
Identifier used to set and retrieve properties.
Definition: PropertyId.h:40
std::type_index getTypeId() const
Definition: PropertyId.h:66
virtual std::shared_ptr< Task > createTask(const PropertyId &property_id) const
Returns a Task producing a Property corresponding to the given PropertyId.