Program Listing for File data_tamer.hpp

Return to documentation for file (/tmp/ws/src/data_tamer/data_tamer_cpp/include/data_tamer/data_tamer.hpp)

#pragma once

#include "data_tamer/channel.hpp"

namespace DataTamer
{

class ChannelsRegistry
{
public:
  ChannelsRegistry();

  // the Pimpl idiom does not allow a default destructor
  ~ChannelsRegistry();

  // global instance (similar to singleton)
  static ChannelsRegistry& Global();

  void addDefaultSink(std::shared_ptr<DataSinkBase> sink);

  [[nodiscard]] std::shared_ptr<LogChannel> getChannel(std::string const& channel_name);

  void clear();

private:
  struct Pimpl;
  std::unique_ptr<Pimpl> _p;
};

}   // namespace DataTamer