FERS 0.1.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
hdf5_output_sink.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-only
2//
3// Copyright (c) 2026-present FERS Contributors (see AUTHORS.md).
4//
5// See the GNU GPLv2 LICENSE file in the FERS project root for more information.
6
7#pragma once
8
9#include <memory>
10#include <string>
11
13
14namespace core
15{
16 class OutputMetadataCollector;
17}
18
19namespace serial
20{
22 {
23 public:
24 Hdf5OutputSink(std::string output_dir,
25 std::shared_ptr<core::OutputMetadataCollector> metadata_collector = nullptr);
26 ~Hdf5OutputSink() override;
27
30
31 void initializeRun(const core::OutputConfig& config, std::string simulation_name) override;
32 std::uint32_t registerStream(const core::ReceiverStreamDescriptor& stream) override;
33 void openStream(std::uint32_t stream_id, RealType first_sample_time) override;
34 void submitBlock(const core::ReceiverSampleBlock& block) override;
36 void closeStream(std::uint32_t stream_id) override;
37 core::OutputStats finalize() override;
38
39 private:
40 struct Impl;
41 std::unique_ptr<Impl> _impl;
42 };
43
44 [[nodiscard]] std::unique_ptr<core::ReceiverOutputSink>
45 makeHdf5OutputSink(std::string output_dir,
46 std::shared_ptr<core::OutputMetadataCollector> metadata_collector = nullptr);
47}
std::uint32_t registerStream(const core::ReceiverStreamDescriptor &stream) override
Hdf5OutputSink(const Hdf5OutputSink &)=delete
void emitContextHeartbeat(RealType simulation_time) override
void initializeRun(const core::OutputConfig &config, std::string simulation_name) override
Hdf5OutputSink & operator=(const Hdf5OutputSink &)=delete
void submitBlock(const core::ReceiverSampleBlock &block) override
core::OutputStats finalize() override
void openStream(std::uint32_t stream_id, RealType first_sample_time) override
void closeStream(std::uint32_t stream_id) override
double RealType
Type for real numbers.
Definition config.h:27
std::unique_ptr< core::ReceiverOutputSink > makeHdf5OutputSink(std::string output_dir, std::shared_ptr< core::OutputMetadataCollector > metadata_collector)
math::Vec3 max