SourceXtractorPlusPlus  0.15
Please provide a description of the project.
SourceFlagsPlugin.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 
39 #ifndef _SEIMPLEMENTATION_PLUGIN_SOURCEFLAGSPLUGIN_H_
40 #define _SEIMPLEMENTATION_PLUGIN_SOURCEFLAGSPLUGIN_H_
41 
42 #include "SourceFlags.h"
45 
46 #include <vector>
47 
48 namespace SourceXtractor {
49 
50 class SourceFlagsPlugin : public Plugin {
51 public:
52  virtual ~SourceFlagsPlugin() = default;
53 
54  virtual void registerPlugin(PluginAPI &plugin_api) {
57  "source_flags",
58  [](const SourceFlags &prop) {
59  return flags2long(prop.getSourceFlags());
60  },
61  "",
62  "The source flags"
63  );
64  plugin_api.getOutputRegistry().enableOutput<SourceFlags>("SourceFlags");
65  }
66 
67  virtual std::string getIdString() const {
68  return "source_flags";
69  }
70 
71 private:
72 }; // end of SourceFlagsPlugin class
73 
74 } // namespace SourceXtractor
75 #endif /* _SEIMPLEMENTATION_PLUGIN_SOURCEFLAGSPLUGIN_H_ */
void registerColumnConverter(std::string column_name, ColumnConverter< PropertyType, OutType > converter, std::string column_unit="", std::string column_description="")
void enableOutput(std::string alias_name, bool configurable_output=false)
This interface is given to the plugin to let it access object instances from the framework.
Definition: PluginAPI.h:39
virtual OutputRegistry & getOutputRegistry() const =0
virtual TaskFactoryRegistry & getTaskFactoryRegistry() const =0
Plugins must implement this interface.
Definition: Plugin.h:38
virtual std::string getIdString() const
virtual ~SourceFlagsPlugin()=default
virtual void registerPlugin(PluginAPI &plugin_api)
constexpr int64_t flags2long(const Flags &a)
Definition: SourceFlags.h:84