31 lines
821 B
C++
31 lines
821 B
C++
#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_
|