// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once // The module placement (dataset_settings.module_placement of jfjoch_api.yaml) between the generated model // and ModulePlacement (common/DetectorModules.h). Only the generated model and common/ are needed, so the portable programs (rugnux, // the viewer) use it as the broker does. #include #include #include "gen/model/Detector_module_placement.h" #include "../common/DetectorModules.h" ModulePlacement Convert(const org::openapitools::server::model::Detector_module_placement &input); org::openapitools::server::model::Detector_module_placement ConvertPlacement(const ModulePlacement &input); // A module placement file: the dataset_settings fragment {"module_placement": [...]}, as rugnux writes it // and /start takes it merged into its dataset settings. std::vector ParseModulePlacement(const std::string &json_text); // The placement of every module (PlacementOf), in the table's order. std::string ModulePlacementJson(const DetectorModules &modules);