#ifndef FESA_ANALYSIS_ANALYSIS_PROCEDURE_H_ #define FESA_ANALYSIS_ANALYSIS_PROCEDURE_H_ #include "fesa/analysis/prepared_analysis_outcome.h" #include "fesa/core/status.h" namespace fesa { class Domain; /// @brief Executes one prepared Domain without opening result files. /// @note The Domain and injected adapters outlive Execute. Accepted histories /// remain procedure-specific and are returned only after validation. class AnalysisProcedure { public: virtual ~AnalysisProcedure() = default; /// @brief Returns the original typed completed payload or first failure. virtual Result Execute(const Domain& domain) = 0; }; } // namespace fesa #endif // FESA_ANALYSIS_ANALYSIS_PROCEDURE_H_