Program Listing for File dummy_sink.hpp
↰ Return to documentation for file (/tmp/ws/src/data_tamer/data_tamer_cpp/include/data_tamer/sinks/dummy_sink.hpp
)
#pragma once
#include "data_tamer/data_sink.hpp"
#include "data_tamer/details/mutex.hpp"
#include <unordered_map>
#include <mutex>
namespace DataTamer
{
class DummySink : public DataSinkBase
{
public:
std::unordered_map<uint64_t, Schema> schemas;
std::unordered_map<uint64_t, std::string> schema_names;
std::unordered_map<uint64_t, long> snapshots_count;
Snapshot latest_snapshot;
Mutex schema_mutex_;
~DummySink() override { stopThread(); }
void addChannel(std::string const& name, Schema const& schema) override
{
std::scoped_lock lk(schema_mutex_);
schemas[schema.hash] = schema;
schema_names[schema.hash] = name;
snapshots_count[schema.hash] = 0;
}
bool storeSnapshot(const Snapshot& snapshot) override
{
std::scoped_lock lk(schema_mutex_);
latest_snapshot = snapshot;
auto it = snapshots_count.find(snapshot.schema_hash);
if (it != snapshots_count.end())
{
it->second++;
}
return true;
}
};
} // namespace DataTamer