22#include "feed/Types.hpp"
23#include "feed/impl/TrackableSignal.hpp"
24#include "util/async/AnyExecutionContext.hpp"
25#include "util/async/AnyStrand.hpp"
26#include "util/log/Logger.hpp"
27#include "util/prometheus/Gauge.hpp"
29#include <boost/asio/io_context.hpp>
30#include <boost/asio/strand.hpp>
44 std::reference_wrapper<util::prometheus::GaugeInt> subCount_;
62 sub(SubscriberSharedPtr
const& subscriber);
69 unsub(SubscriberSharedPtr
const& subscriber);
Base class for single feed.
Definition SingleFeedBase.hpp:42
void unsub(SubscriberSharedPtr const &subscriber)
Unsubscribe the feed.
Definition SingleFeedBase.cpp:59
std::uint64_t count() const
Get the count of subscribers.
Definition SingleFeedBase.cpp:74
void pub(std::string msg)
Publishes the feed in strand.
Definition SingleFeedBase.cpp:65
SingleFeedBase(util::async::AnyExecutionContext &executionCtx, std::string const &name)
Construct a new Single Feed Base object.
Definition SingleFeedBase.cpp:35
void sub(SubscriberSharedPtr const &subscriber)
Subscribe the feed.
Definition SingleFeedBase.cpp:41
A thread-safe class to manage a signal and its tracking connections.
Definition TrackableSignal.hpp:44
A simple thread-safe logger for the channel specified in the constructor.
Definition Logger.hpp:110
A type-erased execution context.
Definition AnyExecutionContext.hpp:41
A type-erased execution context.
Definition AnyStrand.hpp:40
An interface to provide connection functionality for subscriptions.
Definition SubscriptionContextInterface.hpp:39