15#include "../ipc_stream_writer.hpp"
16#include "redis_ipc_configuration.hpp"
17#include "redis_client.hpp"
19namespace presage::smartspectra::redis_ipc {
25template<container::settings::IntegrationMode TIntegrationMode>
29 using typename Base::BackgroundContainer;
31 explicit RedisIpcStreamWriter(
const RedisIpcConfig& configuration);
32 virtual ~RedisIpcStreamWriter();
35 absl::Status
WriteStatus(
const presage::physiology::StatusValue& status)
override;
36 absl::Status
WriteCoreMetrics(
const presage::physiology::MetricsBuffer& metrics, int64_t timestamp_us)
override;
37 absl::Status
WriteEdgeMetrics(
const presage::physiology::Metrics& metrics, int64_t timestamp_us)
override;
38 absl::Status
WriteFrame(
const cv::Mat& frame, int64_t timestamp_us)
override;
39 void Close()
override;
41 absl::Status
Flush()
override;
59 std::string
BuildKey(
const std::string& suffix)
const;
64 std::string
BuildChannel(
const std::string& suffix)
const;
74 mutable std::mutex write_mutex_;
75 std::atomic<bool> is_operational_{
false};
78 std::atomic<int> publish_error_count_{0};
79 static constexpr int kMaxErrorLogs = 5;
Definition ipc_stream_writer.hpp:46
Definition redis_client.hpp:22
absl::Status WriteCoreMetrics(const presage::physiology::MetricsBuffer &metrics, int64_t timestamp_us) override
Definition redis_ipc_stream_writer_impl.hpp:112
absl::Status Flush() override
Definition redis_ipc_stream_writer_impl.hpp:233
absl::Status PublishRecordingState(bool recording)
Definition redis_ipc_stream_writer_impl.hpp:239
std::string BuildKey(const std::string &suffix) const
Definition redis_ipc_stream_writer_impl.hpp:269
absl::Status WriteFrame(const cv::Mat &frame, int64_t timestamp_us) override
Definition redis_ipc_stream_writer_impl.hpp:169
absl::Status WriteEdgeMetrics(const presage::physiology::Metrics &metrics, int64_t timestamp_us) override
Definition redis_ipc_stream_writer_impl.hpp:141
std::string BuildChannel(const std::string &suffix) const
Definition redis_ipc_stream_writer_impl.hpp:277
void Close() override
Definition redis_ipc_stream_writer_impl.hpp:221
bool IsOperational() const override
Definition redis_ipc_stream_writer_impl.hpp:228
absl::Status WriteStatus(const presage::physiology::StatusValue &status) override
Definition redis_ipc_stream_writer_impl.hpp:86
absl::Status Initialize()
Definition redis_ipc_stream_writer_impl.hpp:40
Definition redis_ipc_configuration.hpp:26