SourceXtractorPlusPlus
0.13
Please provide a description of the project.
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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
));
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
}
53
54
}
55
SourceXtractor::MeasurementFactory::m_thread_pool
std::shared_ptr< Euclid::ThreadPool > m_thread_pool
Definition:
MeasurementFactory.h:56
DummyMeasurement.h
SourceXtractor::MeasurementFactory::configure
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
Definition:
MeasurementFactory.cpp:48
MeasurementFactory.h
SourceXtractor::MultiThreadingConfig
Definition:
MultiThreadingConfig.h:32
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:55
SourceXtractor::MeasurementFactory::getMeasurement
std::unique_ptr< Measurement > getMeasurement() const
Definition:
MeasurementFactory.cpp:34
Euclid::Configuration::ConfigManager
Euclid::Configuration::ConfigManager::getConfiguration
T & getConfiguration()
SourceXtractor::MeasurementFactory::m_threads_nb
unsigned int m_threads_nb
Definition:
MeasurementFactory.h:58
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:54
MultithreadedMeasurement.h
SourceXtractor::MeasurementFactory::reportConfigDependencies
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
Definition:
MeasurementFactory.cpp:43
Generated by
1.8.5