Clio  develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
SubscriptionContextInterface.hpp
1#pragma once
2
3#include "util/Taggable.hpp"
4
5#include <boost/signals2/signal.hpp>
6#include <boost/signals2/variadic_signal.hpp>
7
8#include <cstdint>
9#include <functional>
10#include <memory>
11#include <string>
12
13namespace web {
14
21public:
23
29 virtual void
30 send(std::shared_ptr<std::string> message) = 0;
31
35 using OnDisconnectSlot = std::function<void(SubscriptionContextInterface*)>;
36
42 virtual void
44
49 virtual void
50 setApiSubversion(uint32_t value) = 0;
51
57 virtual uint32_t
58 apiSubversion() const = 0;
59};
60
64using SubscriptionContextPtr = std::shared_ptr<SubscriptionContextInterface>;
65
66} // namespace web
A base class that allows attaching a tag decorator to a subclass.
Definition Taggable.hpp:236
Taggable(util::TagDecoratorFactory const &tagFactory)
New Taggable from a specified factory.
Definition Taggable.hpp:246
An interface to provide connection functionality for subscriptions.
Definition SubscriptionContextInterface.hpp:20
std::function< void(SubscriptionContextInterface *)> OnDisconnectSlot
Alias for on disconnect slot.
Definition SubscriptionContextInterface.hpp:35
virtual void send(std::shared_ptr< std::string > message)=0
Send message to the client.
virtual uint32_t apiSubversion() const =0
Get the API subversion.
virtual void onDisconnect(OnDisconnectSlot const &slot)=0
Connect a slot to onDisconnect connection signal.
virtual void setApiSubversion(uint32_t value)=0
Set the API subversion.
This namespace implements the web server and related components.
Definition Types.hpp:24
std::shared_ptr< SubscriptionContextInterface > SubscriptionContextPtr
An alias for shared pointer to a SubscriptionContextInterface.
Definition SubscriptionContextInterface.hpp:64