SourceXtractorPlusPlus
0.16
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
#include "
SEImplementation/Configuration/OutputConfig.h
"
30
#include "
SEImplementation/Configuration/MultiThreadingConfig.h
"
31
32
namespace
SourceXtractor
{
33
34
std::unique_ptr<Measurement>
MeasurementFactory::getMeasurement
()
const
{
35
if
(
m_threads_nb
> 0) {
36
auto
source_to_row =
m_output_registry
->getSourceToRowConverter(
m_output_properties
);
37
return
std::unique_ptr<Measurement>
(
new
MultithreadedMeasurement
(source_to_row,
m_thread_pool
,
m_max_queue
));
38
}
else
{
39
return
std::unique_ptr<Measurement>
(
new
DummyMeasurement
());
40
}
41
}
42
43
void
MeasurementFactory::reportConfigDependencies
(
Euclid::Configuration::ConfigManager
& manager)
const
{
44
manager.
registerConfiguration
<
OutputConfig
>();
45
manager.
registerConfiguration
<
MultiThreadingConfig
>();
46
}
47
48
void
MeasurementFactory::configure
(
Euclid::Configuration::ConfigManager
& manager) {
49
m_output_properties
= manager.
getConfiguration
<
OutputConfig
>().getOutputProperties();
50
m_threads_nb
= manager.
getConfiguration
<
MultiThreadingConfig
>().getThreadsNb();
51
m_thread_pool
= manager.
getConfiguration
<
MultiThreadingConfig
>().getThreadPool();
52
m_max_queue
= manager.
getConfiguration
<
MultiThreadingConfig
>().getMaxQueueSize();
53
}
54
55
}
56
DummyMeasurement.h
MeasurementFactory.h
MultiThreadingConfig.h
MultithreadedMeasurement.h
OutputConfig.h
Euclid::Configuration::ConfigManager
Euclid::Configuration::ConfigManager::registerConfiguration
void registerConfiguration()
Euclid::Configuration::ConfigManager::getConfiguration
T & getConfiguration()
SourceXtractor::DummyMeasurement
Definition:
DummyMeasurement.h:31
SourceXtractor::MeasurementFactory::configure
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
Definition:
MeasurementFactory.cpp:48
SourceXtractor::MeasurementFactory::reportConfigDependencies
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
Definition:
MeasurementFactory.cpp:43
SourceXtractor::MeasurementFactory::m_max_queue
unsigned int m_max_queue
Definition:
MeasurementFactory.h:58
SourceXtractor::MeasurementFactory::m_output_properties
std::vector< std::string > m_output_properties
Definition:
MeasurementFactory.h:54
SourceXtractor::MeasurementFactory::m_threads_nb
unsigned int m_threads_nb
Definition:
MeasurementFactory.h:58
SourceXtractor::MeasurementFactory::m_output_registry
std::shared_ptr< OutputRegistry > m_output_registry
Definition:
MeasurementFactory.h:55
SourceXtractor::MeasurementFactory::m_thread_pool
std::shared_ptr< Euclid::ThreadPool > m_thread_pool
Definition:
MeasurementFactory.h:56
SourceXtractor::MeasurementFactory::getMeasurement
std::unique_ptr< Measurement > getMeasurement() const
Definition:
MeasurementFactory.cpp:34
SourceXtractor::MultiThreadingConfig
Definition:
MultiThreadingConfig.h:32
SourceXtractor::MultithreadedMeasurement
Definition:
MultithreadedMeasurement.h:38
SourceXtractor::OutputConfig
Definition:
OutputConfig.h:36
SourceXtractor
Definition:
Aperture.h:30
std::unique_ptr
Generated by
1.9.1