FOUND
Loading...
Searching...
No Matches
executors.hpp
1#ifndef SRC_COMMAND_LINE_EXECUTION_EXECUTORS_HPP_
2#define SRC_COMMAND_LINE_EXECUTION_EXECUTORS_HPP_
3
4#include <memory>
5
6#include "common/pipeline/pipelines.hpp"
7#include "command-line/parsing/options.hpp"
8#include "common/style.hpp"
9
10#include "calibrate/calibrate.hpp"
11
12#include "distance/edge.hpp"
13#include "distance/distance.hpp"
14#include "distance/vectorize.hpp"
15#include "distance/edge-filters.hpp"
16
17#include "orbit/orbit.hpp"
18
19namespace found {
20
26 public:
28 virtual ~PipelineExecutor() = default;
32 virtual void ExecutePipeline() = 0;
37 virtual void OutputResults() = 0;
38};
39
45 public:
53 std::unique_ptr<CalibrationAlgorithm> calibrationAlgorithm);
54
55 void ExecutePipeline() override;
56 void OutputResults() override;
57
58 private:
63};
64
70 public:
75
89 std::unique_ptr<EdgeDetectionAlgorithm> edgeDetectionAlgorithm,
90 std::unique_ptr<DistanceDeterminationAlgorithm> distanceAlgorithm,
91 std::unique_ptr<VectorGenerationAlgorithm> vectorizationAlgorithm);
92
106 explicit DistancePipelineExecutor(DistanceOptions &&options,
107 std::unique_ptr<EdgeDetectionAlgorithm> edgeDetectionAlgorithm,
108 std::unique_ptr<EdgeFilteringAlgorithms> filters,
109 std::unique_ptr<DistanceDeterminationAlgorithm> distanceAlgorithm,
110 std::unique_ptr<VectorGenerationAlgorithm> vectorizationAlgorithm);
111
112 void ExecutePipeline() override;
113 void OutputResults() override;
114
115 private:
120};
121
127 public:
134 explicit OrbitPipelineExecutor(OrbitOptions &&options,
135 std::unique_ptr<OrbitPropagationAlgorithm> orbitPropagationAlgorithm);
136
137 void ExecutePipeline() override;
138 void OutputResults() override;
139
140 private:
145};
146
147} // namespace found
148
149#endif // SRC_COMMAND_LINE_EXECUTION_EXECUTORS_HPP_
Definition options.hpp:87
Definition options.hpp:95
Definition options.hpp:103
CalibrationPipelineExecutor is the pipeline executor for the calibration pipeline.
Definition executors.hpp:44
CalibrationPipeline pipeline_
The Calibration pipeline.
Definition executors.hpp:62
void OutputResults() override
Outputs the results of the Pipeline in some format.
Definition executors.cpp:27
const CalibrationOptions options_
The Calibration options being used.
Definition executors.hpp:60
void ExecutePipeline() override
Executes the relavent Pipeline.
Definition executors.cpp:20
DistancePipelineExecutor is the pipeline executor for the distance determination pipeline.
Definition executors.hpp:69
void OutputResults() override
Outputs the results of the Pipeline in some format.
Definition executors.cpp:82
void ExecutePipeline() override
Executes the relavent Pipeline.
Definition executors.cpp:76
const DistanceOptions options_
The DistanceOptions being used.
Definition executors.hpp:117
DistancePipeline pipeline_
The Distance pipeline being used.
Definition executors.hpp:119
~DistancePipelineExecutor()
Destroys this and all distance determination pipeline resources.
Definition executors.cpp:40
OrbitPipelineExecutor is the pipeline executor for the orbit determination pipeline.
Definition executors.hpp:126
void ExecutePipeline() override
Executes the relavent Pipeline.
Definition executors.cpp:123
void OutputResults() override
Outputs the results of the Pipeline in some format.
Definition executors.cpp:129
OrbitPipeline pipeline_
The Orbit pipeline.
Definition executors.hpp:144
const OrbitOptions options_
The Orbit options being used.
Definition executors.hpp:142
PipelineExecutor is an interface for classes that execute complex pipelines.
Definition executors.hpp:25
virtual void ExecutePipeline()=0
Executes the relavent Pipeline.
virtual void OutputResults()=0
Outputs the results of the Pipeline in some format.
virtual ~PipelineExecutor()=default
Destroys this.