Zserio C++17 runtime library 1.3.0
Built for Zserio 2.20.0
Loading...
Searching...
No Matches
IPubsub.h
Go to the documentation of this file.
1#ifndef ZSERIO_IPUBSUB_H_INC
2#define ZSERIO_IPUBSUB_H_INC
3
4#include <memory>
5#include <string_view>
6
7#include "zserio/Span.h"
8#include "zserio/Types.h"
9
10namespace zserio
11{
12
15{
16public:
17 virtual ~IPubsub() = default;
18
23
28 {
29 public:
30 virtual ~OnTopicCallback() = default;
31 virtual void operator()(std::string_view topic, Span<const uint8_t> data) = 0;
32 };
33
43 virtual void publish(std::string_view topic, Span<const uint8_t> data, void* context) = 0;
44
58 std::string_view topic, const std::shared_ptr<OnTopicCallback>& callback, void* context) = 0;
59
67 virtual void unsubscribe(SubscriptionId id) = 0;
68};
69
70} // namespace zserio
71
72#endif // ZSERIO_IPUBSUB_H_INC
virtual ~OnTopicCallback()=default
virtual void operator()(std::string_view topic, Span< const uint8_t > data)=0
virtual SubscriptionId subscribe(std::string_view topic, const std::shared_ptr< OnTopicCallback > &callback, void *context)=0
virtual void publish(std::string_view topic, Span< const uint8_t > data, void *context)=0
virtual void unsubscribe(SubscriptionId id)=0
virtual ~IPubsub()=default