feat(cpp-object-oriented-modular-refactoring): step 23 - hdf5-writer-modules

This commit is contained in:
KOKO\Mimi
2026-08-16 13:28:06 +09:00
parent 5e4e3f2a5b
commit feaddd9e83
15 changed files with 3004 additions and 2300 deletions
+33
View File
@@ -0,0 +1,33 @@
#ifndef FESA_IO_HDF5_HDF5_RESULT_WRITER_H_
#define FESA_IO_HDF5_HDF5_RESULT_WRITER_H_
#include <hdf5.h>
#include <filesystem>
#include <vector>
#include "fesa/analysis/analysis_state.h"
#include "fesa/core/diagnostic.h"
#include "fesa/core/status.h"
#include "fesa/model/domain.h"
#include "io/hdf5/hdf5_primitives.h"
namespace fesa::hdf5_internal {
/// @brief Builds the complete backend-neutral result dataset inventory.
Result<WriterPlan> BuildWriterPlan(const std::filesystem::path& output_path,
const Domain& domain,
const AnalysisState& state,
const std::vector<Diagnostic>& diagnostics);
/// @brief Rejects malformed, duplicate, shape-mismatched, or nonfinite plans.
Status ValidateFiniteInventory(const std::vector<DoubleDatasetPlan>& datasets);
/// @brief Writes mandatory beam/shell/global results and diagnostics.
void WriteResults(hid_t file, const Domain& domain, const AnalysisState& state,
const std::vector<Diagnostic>& diagnostics,
const WriterPlan& plan);
} // namespace fesa::hdf5_internal
#endif // FESA_IO_HDF5_HDF5_RESULT_WRITER_H_