SourceXtractorPlusPlus
0.10
Please provide a description of the project.
SEImplementation
src
lib
Measurement
MeasurementFactory.cpp
Go to the documentation of this file.
1
17
/*
18
* MeasurementFactory.cpp
19
*
20
* Created on: May 17, 2018
21
* Author: mschefer
22
*/
23
24
#include <iostream>
25
26
#include "
SEImplementation/Measurement/MeasurementFactory.h
"
27
#include "
SEImplementation/Measurement/DummyMeasurement.h
"
28
#include "
SEImplementation/Measurement/MultithreadedMeasurement.h
"
29
30
#include "
SEImplementation/Configuration/OutputConfig.h
"
31
#include "
SEImplementation/Configuration/MultiThreadingConfig.h
"
32
33
namespace
SourceXtractor
{
34
35
std::unique_ptr<Measurement>
MeasurementFactory::getMeasurement
()
const
{
36
if
(
m_threads_nb
> 0) {
37
auto
source_to_row =
m_output_registry
->getSourceToRowConverter(
m_output_properties
);
38
return
std::unique_ptr<Measurement>
(
new
MultithreadedMeasurement
(source_to_row,
m_threads_nb
));
39
}
else
{
40
return
std::unique_ptr<Measurement>
(
new
DummyMeasurement
());
41
}
42
}
43
44
void
MeasurementFactory::reportConfigDependencies
(
Euclid::Configuration::ConfigManager
& manager)
const
{
45
manager.
registerConfiguration
<
OutputConfig
>();
46
manager.
registerConfiguration
<
MultiThreadingConfig
>();
47
}
48
49
void
MeasurementFactory::configure
(
Euclid::Configuration::ConfigManager
& manager) {
50
m_output_properties
= manager.
getConfiguration
<
OutputConfig
>().getOutputProperties();
51
m_threads_nb
= manager.
getConfiguration
<
MultiThreadingConfig
>().getThreadsNb();
52
}
53
54
}
55
DummyMeasurement.h
SourceXtractor::MeasurementFactory::configure
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
Definition:
MeasurementFactory.cpp:49
SourceXtractor::MeasurementFactory::getMeasurement
std::unique_ptr< Measurement > getMeasurement() const
Definition:
MeasurementFactory.cpp:35
MeasurementFactory.h
SourceXtractor::MultiThreadingConfig
Definition:
MultiThreadingConfig.h:31
SourceXtractor::DummyMeasurement
Definition:
DummyMeasurement.h:31
OutputConfig.h
Euclid::Configuration::ConfigManager::registerConfiguration
void registerConfiguration()
SourceXtractor::MeasurementFactory::m_output_registry
std::shared_ptr< OutputRegistry > m_output_registry
Definition:
MeasurementFactory.h:54
SourceXtractor
Definition:
Aperture.h:30
Euclid::Configuration::ConfigManager::getConfiguration
T & getConfiguration()
Euclid::Configuration::ConfigManager
SourceXtractor::MeasurementFactory::m_threads_nb
unsigned int m_threads_nb
Definition:
MeasurementFactory.h:56
std::unique_ptr
STL class.
MultiThreadingConfig.h
SourceXtractor::OutputConfig
Definition:
OutputConfig.h:36
SourceXtractor::MultithreadedMeasurement
Definition:
MultithreadedMeasurement.h:37
SourceXtractor::MeasurementFactory::m_output_properties
std::vector< std::string > m_output_properties
Definition:
MeasurementFactory.h:53
MultithreadedMeasurement.h
SourceXtractor::MeasurementFactory::reportConfigDependencies
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
Definition:
MeasurementFactory.cpp:44
Generated by
1.8.15