My Project
Loading...
Searching...
No Matches
AlgorithmScanner.hpp
1#pragma once
2
3#include "algorithm/AlgorithmInfo.hpp"
4#include "extern/nlohmann/json.hpp"
5#include <vector>
6#include <string>
7#include <map>
8
9using json = nlohmann::json;
10
12public:
14 explicit AlgorithmScanner(const std::string& algorithmDirectory);
15
16 // Load algorithms from directory
17 bool scanAlgorithms(const std::string& algorithmDirectory = "");
18
19 // Get list of available algorithms
20 std::vector<AlgorithmInfo> getAlgorithms() const;
21 std::vector<std::string> getAlgorithmNames() const;
22
23 // Get specific algorithm info
24 AlgorithmInfo getAlgorithm(const std::string& name) const;
25 bool hasAlgorithm(const std::string& name) const;
26
27 // Validate algorithm configuration
28 std::vector<std::string> validateConfiguration(const std::string& algorithmName, const json& config) const;
29
30 // Get algorithm executable path
31 std::string getAlgorithmPath(const std::string& name) const;
32
33private:
34 std::string algorithmsDirectory;
35 std::map<std::string, AlgorithmInfo> algorithms;
36
37 void loadAlgorithmFromDirectory(const std::string& algorithmDir);
38 bool isValidAlgorithmDirectory(const std::string& path) const;
39};
Definition AlgorithmScanner.hpp:11
Definition AlgorithmInfo.hpp:9