13#include <nlohmann/json.hpp>
14#include <absl/status/status.h>
15#include <absl/status/statusor.h>
16#include <glog/logging.h>
18namespace presage::smartspectra::redis_ipc {
31 std::string
host =
"localhost";
90 std::string core_metrics =
"core_metrics";
91 std::string edge_metrics =
"edge_metrics";
92 std::string status =
"status";
93 std::string hud_frame =
"hud_frame";
94 std::string recording_commands =
"recording_commands";
102 std::string recording_state =
"recording_state";
103 std::string command_queue =
"command_queue";
162 static absl::StatusOr<RedisIpcConfig>
LoadFromJson(
const std::filesystem::path& path);
176 [[nodiscard]] nlohmann::json
ToJson()
const;
183 static absl::StatusOr<RedisIpcConfig>
FromJson(
const nlohmann::json& j);
197 static constexpr const char* backend_name =
"Redis IPC";
198 static constexpr const char* config_filename =
"redis_ipc_config.json";
199 static constexpr const char* save_default_flag_name =
"save_default_redis_ipc_config";
200 static constexpr const char* config_path_flag_name =
"redis_ipc_config_path";
202 static void LogFinalConfig(
const ConfigType& config) {
203 LOG(INFO) << backend_name <<
" configuration prepared: host=" << config.
host
204 <<
", port=" << config.
port
Definition redis_ipc_configuration.hpp:89
Definition redis_ipc_configuration.hpp:101
Definition redis_ipc_configuration.hpp:26
static absl::Status SaveToJson(const RedisIpcConfig &config, const std::filesystem::path &path)
Definition redis_ipc_configuration.cpp:176
bool enable_debug_logging
Definition redis_ipc_configuration.hpp:130
size_t max_bulk_string_bytes
Definition redis_ipc_configuration.hpp:149
int port
Definition redis_ipc_configuration.hpp:37
int database
Definition redis_ipc_configuration.hpp:49
size_t max_array_elements
Definition redis_ipc_configuration.hpp:155
bool use_streams
Definition redis_ipc_configuration.hpp:137
std::chrono::milliseconds reconnect_interval
Definition redis_ipc_configuration.hpp:77
std::string key_prefix
Definition redis_ipc_configuration.hpp:59
size_t stream_max_entries
Definition redis_ipc_configuration.hpp:143
nlohmann::json ToJson() const
Definition redis_ipc_configuration.cpp:213
std::chrono::milliseconds operation_timeout
Definition redis_ipc_configuration.hpp:71
std::chrono::milliseconds connection_timeout
Definition redis_ipc_configuration.hpp:65
std::chrono::seconds frame_ttl
Definition redis_ipc_configuration.hpp:118
static absl::StatusOr< RedisIpcConfig > LoadFromJson(const std::filesystem::path &path)
Definition redis_ipc_configuration.cpp:140
static absl::StatusOr< RedisIpcConfig > FromJson(const nlohmann::json &j)
Definition redis_ipc_configuration.cpp:219
std::string host
Definition redis_ipc_configuration.hpp:31
size_t max_reconnect_attempts
Definition redis_ipc_configuration.hpp:83
size_t max_list_size
Definition redis_ipc_configuration.hpp:111
bool enable_pipelining
Definition redis_ipc_configuration.hpp:124
std::optional< std::string > password
Definition redis_ipc_configuration.hpp:43
Definition redis_ipc_configuration.hpp:195