12#ifndef RTCTK_COMPONENTFRAMEWORK_DYNAMICDATAPOINTRECORDINGUNIT_HPP
13#define RTCTK_COMPONENTFRAMEWORK_DYNAMICDATAPOINTRECORDINGUNIT_HPP
16#include <boost/signals2/connection.hpp>
55 void Start()
override;
57 std::vector<std::filesystem::path>
Stop()
override;
68 std::vector<std::unique_ptr<RecordingUnit>> m_recording_units;
69 std::vector<boost::signals2::scoped_connection> m_recording_unit_connections;
73 inline static constexpr std::string_view RTR_PATH_DATA_POINT_LIST =
74 "/{}/dynamic/rec_units/{}/datapoint_list";
76 std::function<
void*(std::type_index)> m_recorder_factory;
81 void StateTransitionHandler(
const std::string&
unit_id,
const State& state);
86 std::map<std::string, State> m_state_map{};
87 std::mutex m_state_map_mutex{};
90 std::atomic_size_t m_unit_count{0};
91 std::atomic_size_t m_units_idle{0};
92 std::atomic_size_t m_units_finished{0};
Recording unit that takes datapoints from RuntimeRepo path "/component_id/dynamic/rec_units/unit_id/d...
Definition dynamicDataPointRecordingUnit.hpp:38
std::vector< std::filesystem::path > Stop() override
Stop the recording and wait for it's termination.
Definition dynamicDataPointRecordingUnit.cpp:278
std::function< void *(std::type_index)> DataRecorderFactory
Definition dynamicDataPointRecordingUnit.hpp:63
void CheckErrors() override
Check for Errors, will rethrow errors thrown in the recorder.
Definition dynamicDataPointRecordingUnit.cpp:296
void Update() override
Update dynamic settings.
Definition dynamicDataPointRecordingUnit.cpp:290
void Prepare(const std::filesystem::path &file_path) override
Prepare the recording.
Definition dynamicDataPointRecordingUnit.cpp:206
DynamicDataPointRecordingUnit(const std::string &comp_id, const std::string &unit_id, ServiceContainer &services, std::function< void *(std::type_index)> recorder_factory=&FitsDataRecorderFactory)
Definition dynamicDataPointRecordingUnit.cpp:196
virtual ~DynamicDataPointRecordingUnit()
Definition dynamicDataPointRecordingUnit.cpp:339
void Start() override
Start the recording.
Definition dynamicDataPointRecordingUnit.cpp:269
Abstract base class for all sources that can be recorded by the MetadataCollector and TelemetryRecord...
Definition recordingUnit.hpp:51
State
Definition recordingUnit.hpp:53
Container class that holds services of any type.
Definition serviceContainer.hpp:39
Definition commandReplier.cpp:22
void * FitsDataRecorderFactory(std::type_index type)
A Recorder factory for the DynamicDataPointRecordingUnit that creates FitsRecorders.
Definition dynamicDataPointRecordingUnit.cpp:188
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23
Abstract base class defining functionality common to all recording units.
A container that can hold any type of service.