SourceXtractorPlusPlus  0.14
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
SourceXtractor::OutputRegistry Class Reference

#include <OutputRegistry.h>

Collaboration diagram for SourceXtractor::OutputRegistry:
[legend]

Classes

struct  ColInfo
 
class  ColumnFromSource
 

Public Types

template<typename PropertyType , typename OutType >
using ColumnConverter = std::function< OutType(const PropertyType &)>
 
using SourceToRowConverter = std::function< Euclid::Table::Row(const SourceInterface &)>
 

Public Member Functions

template<typename PropertyType , typename OutType >
void registerColumnConverter (std::string column_name, ColumnConverter< PropertyType, OutType > converter, std::string column_unit="", std::string column_description="")
 
template<typename PropertyType >
void registerPropertyInstances (const std::vector< std::pair< std::string, unsigned int >> &instance_names)
 
template<typename PropertyType >
void registerPropertyInstances (const std::string &current_name, const std::vector< std::pair< std::string, unsigned int >> &instance_names)
 
template<typename PropertyType >
void enableOutput (std::string alias_name, bool configurable_output=false)
 
std::set< std::stringgetOutputPropertyNames ()
 
SourceToRowConverter getSourceToRowConverter (const std::vector< std::string > &enabled_optional)
 
void printPropertyColumnMap (const std::vector< std::string > &properties={})
 

Private Attributes

std::map< std::type_index,
std::vector< std::string > > 
m_property_to_names_map {}
 
std::map< std::string,
std::pair< std::type_index,
ColumnFromSource > > 
m_name_to_converter_map {}
 
std::map< std::string, ColInfom_name_to_col_info_map {}
 
std::multimap< std::string,
std::type_index
m_output_properties {}
 

Detailed Description

Definition at line 36 of file OutputRegistry.h.

Member Typedef Documentation

template<typename PropertyType , typename OutType >
using SourceXtractor::OutputRegistry::ColumnConverter = std::function<OutType(const PropertyType&)>

Definition at line 41 of file OutputRegistry.h.

Definition at line 43 of file OutputRegistry.h.

Member Function Documentation

template<typename PropertyType >
void SourceXtractor::OutputRegistry::enableOutput ( std::string  alias_name,
bool  configurable_output = false 
)
inline

Register into the registry the output alias so PropertyType can be serialized into the output catalog

Template Parameters
PropertyTypeThe property holder
Parameters
alias_nameThe alias that will be added as an option to "output-properties"
configurable_outputBy default, OutputRegistry verifies that there are column converters registered for PropertyType. If this option is set to true, the check will be skipped, and it will be assumed that the output columns will be added during the configuration of the plugin

Definition at line 141 of file OutputRegistry.h.

References m_output_properties, and m_property_to_names_map.

Referenced by SourceXtractor::FluxRadiusPlugin::registerPlugin(), SourceXtractor::GrowthCurvePlugin::registerPlugin(), SourceXtractor::CoreThresholdPartitionPlugin::registerPlugin(), SourceXtractor::FlexibleModelFittingPlugin::registerPlugin(), SourceXtractor::MoffatModelFittingPlugin::registerPlugin(), SourceXtractor::PeakValuePlugin::registerPlugin(), SourceXtractor::WorldCentroidPlugin::registerPlugin(), SourceXtractor::SNRRatioPlugin::registerPlugin(), SourceXtractor::DetectionFrameGroupStampPlugin::registerPlugin(), SourceXtractor::IsophotalFluxPlugin::registerPlugin(), SourceXtractor::AperturePhotometryPlugin::registerPlugin(), SourceXtractor::KronRadiusPlugin::registerPlugin(), SourceXtractor::PixelCentroidPlugin::registerPlugin(), SourceXtractor::PixelBoundariesPlugin::registerPlugin(), SourceXtractor::AutoPhotometryPlugin::registerPlugin(), SourceXtractor::ShapeParametersPlugin::registerPlugin(), SourceXtractor::GroupInfoPlugin::registerPlugin(), SourceXtractor::ExternalFlagPlugin::registerPlugin(), SourceXtractor::VignetPlugin::registerPlugin(), SourceXtractor::OnnxPlugin::registerPlugin(), SourceXtractor::NDetectedPixelsPlugin::registerPlugin(), SourceXtractor::SourceIDsPlugin::registerPlugin(), and SourceXtractor::SourceFlagsPlugin::registerPlugin().

std::set<std::string> SourceXtractor::OutputRegistry::getOutputPropertyNames ( )
inline

Definition at line 149 of file OutputRegistry.h.

References std::set< K >::emplace(), and m_output_properties.

Here is the call graph for this function:

auto SourceXtractor::OutputRegistry::getSourceToRowConverter ( const std::vector< std::string > &  enabled_optional)

Definition at line 36 of file OutputRegistry.cpp.

References std::find(), and std::move().

Here is the call graph for this function:

void SourceXtractor::OutputRegistry::printPropertyColumnMap ( const std::vector< std::string > &  properties = {})

Definition at line 70 of file OutputRegistry.cpp.

References std::vector< T >::begin(), std::vector< T >::empty(), std::vector< T >::end(), and std::string::find().

Here is the call graph for this function:

template<typename PropertyType , typename OutType >
void SourceXtractor::OutputRegistry::registerColumnConverter ( std::string  column_name,
ColumnConverter< PropertyType, OutType >  converter,
std::string  column_unit = "",
std::string  column_description = "" 
)
inline
template<typename PropertyType >
void SourceXtractor::OutputRegistry::registerPropertyInstances ( const std::vector< std::pair< std::string, unsigned int >> &  instance_names)
inline

When there are multiple instances of a given property, generate one column output with the given suffix for each instance

Template Parameters
PropertyType
Parameters
instance_names

Definition at line 63 of file OutputRegistry.h.

References m_name_to_col_info_map, m_name_to_converter_map, and m_property_to_names_map.

Referenced by SourceXtractor::AutoPhotometryTaskFactory::registerPropertyInstances(), SourceXtractor::ExternalFlagTaskFactory::registerPropertyInstances(), and SourceXtractor::AperturePhotometryTaskFactory::registerPropertyInstances().

template<typename PropertyType >
void SourceXtractor::OutputRegistry::registerPropertyInstances ( const std::string current_name,
const std::vector< std::pair< std::string, unsigned int >> &  instance_names 
)
inline

When there are multiple instances of a given property, generate one column output with the given name for each instance replacing an existing registered name

Template Parameters
PropertyType
Parameters
current_name
instance_names

Definition at line 99 of file OutputRegistry.h.

References std::back_inserter(), std::copy(), std::find(), m_name_to_col_info_map, m_name_to_converter_map, and m_property_to_names_map.

Here is the call graph for this function:

Member Data Documentation

std::map<std::string, ColInfo> SourceXtractor::OutputRegistry::m_name_to_col_info_map {}
private

Definition at line 186 of file OutputRegistry.h.

Referenced by registerColumnConverter(), and registerPropertyInstances().

std::map<std::string, std::pair<std::type_index, ColumnFromSource> > SourceXtractor::OutputRegistry::m_name_to_converter_map {}
private

Definition at line 185 of file OutputRegistry.h.

Referenced by registerColumnConverter(), and registerPropertyInstances().

std::multimap<std::string, std::type_index> SourceXtractor::OutputRegistry::m_output_properties {}
private

Definition at line 187 of file OutputRegistry.h.

Referenced by enableOutput(), and getOutputPropertyNames().

std::map<std::type_index, std::vector<std::string> > SourceXtractor::OutputRegistry::m_property_to_names_map {}
private

The documentation for this class was generated from the following files: