feat(cpp-object-oriented-modular-refactoring): step 20 - analysis-hierarchy

This commit is contained in:
KOKO\Mimi
2026-08-16 11:33:08 +09:00
parent 95c186b812
commit be35d00f49
8 changed files with 214 additions and 148 deletions
+30
View File
@@ -0,0 +1,30 @@
#ifndef FESA_ANALYSIS_ANALYSIS_H_
#define FESA_ANALYSIS_ANALYSIS_H_
#include <filesystem>
#include "fesa/core/status.h"
namespace fesa {
/// @brief Carries input and authoritative output paths for one analysis run.
struct AnalysisRequest {
std::filesystem::path input_path;
std::filesystem::path output_path;
};
/// @brief Defines the minimal execution contract shared by analysis procedures.
class Analysis {
public:
virtual ~Analysis() = default;
/// @brief Executes one procedure for the supplied input and output paths.
/// @param request Input and authoritative output paths for this run.
/// @return The concrete procedure result without changing its failure
/// category.
virtual Status Run(const AnalysisRequest& request) = 0;
};
} // namespace fesa
#endif // FESA_ANALYSIS_ANALYSIS_H_