14#include <nlohmann/json.hpp>
15#include <absl/status/status.h>
16#include <absl/status/statusor.h>
17#include <glog/logging.h>
19namespace presage::smartspectra::file_ipc {
95 static absl::StatusOr<FileIpcConfiguration>
LoadFromJson(
const std::filesystem::path& path);
109 [[nodiscard]] nlohmann::json
ToJson()
const;
116 static absl::StatusOr<FileIpcConfiguration>
FromJson(
const nlohmann::json& j);
130 static constexpr const char* backend_name =
"File IPC";
131 static constexpr const char* config_filename =
"file_ipc_config.json";
132 static constexpr const char* save_default_flag_name =
"save_default_file_ipc_config";
133 static constexpr const char* config_path_flag_name =
"file_ipc_config_path";
135 static void LogFinalConfig(
const ConfigType& config) {
136 LOG(INFO) << backend_name <<
" configuration prepared with base directory: " << config.
base_directory;
Definition file_ipc_configuration.hpp:128
Definition file_ipc_configuration.hpp:27
bool create_if_missing
Definition file_ipc_configuration.hpp:44
int jpeg_quality
Definition file_ipc_configuration.hpp:88
bool enable_debug_logging
Definition file_ipc_configuration.hpp:81
bool truncate_on_init
Definition file_ipc_configuration.hpp:50
size_t max_frame_count
Definition file_ipc_configuration.hpp:57
static absl::Status SaveToJson(const FileIpcConfiguration &config, const std::filesystem::path &path)
Definition file_ipc_configuration.cpp:88
nlohmann::json ToJson() const
Definition file_ipc_configuration.cpp:117
static absl::StatusOr< FileIpcConfiguration > LoadFromJson(const std::filesystem::path &path)
Definition file_ipc_configuration.cpp:58
std::filesystem::path base_directory
Definition file_ipc_configuration.hpp:38
size_t io_buffer_size
Definition file_ipc_configuration.hpp:75
bool compress_frames
Definition file_ipc_configuration.hpp:69
bool use_file_locking
Definition file_ipc_configuration.hpp:63
static absl::StatusOr< FileIpcConfiguration > FromJson(const nlohmann::json &j)
Definition file_ipc_configuration.cpp:123