| Christopher Meis | 26fbbd5 | 2025-03-26 14:55:06 +0100 | [diff] [blame] | 1 | #pragma once | 
|  | 2 |  | 
|  | 3 | #include "perform_scan.hpp" | 
|  | 4 |  | 
|  | 5 | #include <boost/container/flat_map.hpp> | 
|  | 6 |  | 
|  | 7 | #include <memory> | 
|  | 8 | #include <string> | 
|  | 9 | #include <vector> | 
|  | 10 |  | 
|  | 11 | namespace probe | 
|  | 12 | { | 
|  | 13 | struct CmpStr | 
|  | 14 | { | 
|  | 15 | bool operator()(const char* a, const char* b) const | 
|  | 16 | { | 
|  | 17 | return std::strcmp(a, b) < 0; | 
|  | 18 | } | 
|  | 19 | }; | 
|  | 20 |  | 
|  | 21 | // underscore T for collison with dbus c api | 
|  | 22 | enum class probe_type_codes | 
|  | 23 | { | 
|  | 24 | FALSE_T, | 
|  | 25 | TRUE_T, | 
|  | 26 | AND, | 
|  | 27 | OR, | 
|  | 28 | FOUND, | 
|  | 29 | MATCH_ONE | 
|  | 30 | }; | 
|  | 31 |  | 
| Amithash Prasad | 60618a7 | 2025-05-13 11:03:02 -0700 | [diff] [blame] | 32 | using FoundProbeTypeT = std::optional<probe_type_codes>; | 
| Christopher Meis | 26fbbd5 | 2025-03-26 14:55:06 +0100 | [diff] [blame] | 33 |  | 
|  | 34 | FoundProbeTypeT findProbeType(const std::string& probe); | 
|  | 35 |  | 
|  | 36 | // this class finds the needed dbus fields and on destruction runs the probe | 
|  | 37 | struct PerformProbe : std::enable_shared_from_this<PerformProbe> | 
|  | 38 | { | 
|  | 39 | PerformProbe(nlohmann::json& recordRef, | 
|  | 40 | const std::vector<std::string>& probeCommand, | 
|  | 41 | std::string probeName, | 
|  | 42 | std::shared_ptr<scan::PerformScan>& scanPtr); | 
|  | 43 | virtual ~PerformProbe(); | 
|  | 44 |  | 
| Alexander Hansen | b4c4e03 | 2025-08-05 17:59:07 +0200 | [diff] [blame] | 45 | private: | 
| Christopher Meis | 26fbbd5 | 2025-03-26 14:55:06 +0100 | [diff] [blame] | 46 | nlohmann::json& recordRef; | 
|  | 47 | std::vector<std::string> _probeCommand; | 
|  | 48 | std::string probeName; | 
|  | 49 | std::shared_ptr<scan::PerformScan> scan; | 
|  | 50 | }; | 
|  | 51 |  | 
|  | 52 | } // namespace probe |