uatools 1.0.0
 
Loading...
Searching...
No Matches
Config.hpp
Go to the documentation of this file.
1
16
17#pragma once
18
19#include <cstdint>
20#include <string>
21#include <vector>
22
23namespace eso::uatools::uawatch {
24
25 struct Watcher {
26 std::string name; // thread label in logs
27 std::vector<std::string> nodes; // NodeIds to subscribe to
28 std::uint32_t publishing_interval_ms{100};
29 std::uint32_t queue_size{10};
30 };
31
33 bool enabled{true};
34 std::uint32_t interval_ms{5000};
35 std::uint32_t max_attempts{0}; // 0 = unlimited
36 std::uint32_t max_duration_ms{0}; // 0 = unlimited
37 };
38
39 struct Config {
40 std::string endpoint;
41 std::string username; // empty == anonymous
42 std::string password;
44 std::vector<Watcher> watchers;
45 };
46
49 Config LoadConfig(const std::string& path);
50
51} // namespace eso::uatools::uawatch
Definition Config.cpp:13
Config LoadConfig(const std::string &path)
Load + validate a YAML config. Throws std::runtime_error on parse or schema errors.
Definition Config.cpp:24
Definition Config.hpp:39
ReconnectOpts reconnect
Definition Config.hpp:43
std::string password
Definition Config.hpp:42
std::vector< Watcher > watchers
Definition Config.hpp:44
std::string username
Definition Config.hpp:41
std::string endpoint
Definition Config.hpp:40
Definition Config.hpp:32
bool enabled
Definition Config.hpp:33
std::uint32_t max_duration_ms
Definition Config.hpp:36
std::uint32_t interval_ms
Definition Config.hpp:34
std::uint32_t max_attempts
Definition Config.hpp:35
Definition Config.hpp:25
std::uint32_t publishing_interval_ms
Definition Config.hpp:28
std::vector< std::string > nodes
Definition Config.hpp:27
std::uint32_t queue_size
Definition Config.hpp:29
std::string name
Definition Config.hpp:26