Files
2026-04-19 19:42:30 +02:00

37 lines
978 B
C++

#pragma once
#include <memory>
#include "mocca/api.hpp"
namespace mocca {
/**
* Modern execution façade for the cascade physics kernel.
*
* The public surface stays intentionally small: callers provide a normalized
* `SimulationConfig`, and the implementation owns the setup, propagation, and
* line-collection workflow behind a value-oriented interface.
*/
class ModernCascadeKernel {
public:
explicit ModernCascadeKernel(const SimulationConfig& config);
~ModernCascadeKernel();
ModernCascadeKernel(ModernCascadeKernel&&) noexcept;
ModernCascadeKernel& operator=(ModernCascadeKernel&&) noexcept;
ModernCascadeKernel(const ModernCascadeKernel&) = delete;
ModernCascadeKernel& operator=(const ModernCascadeKernel&) = delete;
[[nodiscard]] SimulationResult run() const;
private:
class Impl;
std::unique_ptr<Impl> impl_;
};
[[nodiscard]] SimulationResult run_modern_kernel(const SimulationConfig& config);
} // namespace mocca