Clio
develop
The XRP Ledger API server.
Theme:
Default
Round
Robot
Toggle main menu visibility
Loading...
Searching...
No Matches
SubscriptionContext.hpp
1
#pragma once
2
3
#include "util/Taggable.hpp"
4
#include "web/SubscriptionContextInterface.hpp"
5
#include "web/interface/Concepts.hpp"
6
#include "web/interface/ConnectionBase.hpp"
7
8
#include <boost/signals2/variadic_signal.hpp>
9
10
#include <atomic>
11
#include <cstdint>
12
#include <memory>
13
#include <string>
14
15
namespace
web
{
16
20
class
SubscriptionContext
:
public
SubscriptionContextInterface
{
21
std::weak_ptr<ConnectionBase> connection_;
22
boost::signals2::signal<void(
SubscriptionContextInterface
*)> onDisconnect_;
29
std::atomic_uint32_t apiSubVersion_ = 0;
30
31
public
:
38
SubscriptionContext
(
39
util::TagDecoratorFactory
const
& factory,
40
std::shared_ptr<ConnectionBase> connection
41
);
42
46
~SubscriptionContext
()
override
;
47
54
void
55
send
(std::shared_ptr<std::string> message)
override
;
56
62
void
63
onDisconnect
(
OnDisconnectSlot
const
& slot)
override
;
64
69
void
70
setApiSubversion
(uint32_t value)
override
;
71
77
[[nodiscard]] uint32_t
78
apiSubversion
()
const override
;
79
};
80
81
}
// namespace web
util::TagDecoratorFactory
A factory for TagDecorator instantiation.
Definition
Taggable.hpp:165
web::SubscriptionContextInterface
An interface to provide connection functionality for subscriptions.
Definition
SubscriptionContextInterface.hpp:20
web::SubscriptionContextInterface::OnDisconnectSlot
std::function< void(SubscriptionContextInterface *)> OnDisconnectSlot
Alias for on disconnect slot.
Definition
SubscriptionContextInterface.hpp:35
web::SubscriptionContext::send
void send(std::shared_ptr< std::string > message) override
Send message to the client.
Definition
SubscriptionContext.cpp:28
web::SubscriptionContext::SubscriptionContext
SubscriptionContext(util::TagDecoratorFactory const &factory, std::shared_ptr< ConnectionBase > connection)
Construct a new Subscription Context object.
Definition
SubscriptionContext.cpp:14
web::SubscriptionContext::~SubscriptionContext
~SubscriptionContext() override
Destroy the Subscription Context object.
Definition
SubscriptionContext.cpp:22
web::SubscriptionContext::setApiSubversion
void setApiSubversion(uint32_t value) override
Set the API subversion.
Definition
SubscriptionContext.cpp:41
web::SubscriptionContext::onDisconnect
void onDisconnect(OnDisconnectSlot const &slot) override
Connect a slot to onDisconnect connection signal.
Definition
SubscriptionContext.cpp:35
web::SubscriptionContext::apiSubversion
uint32_t apiSubversion() const override
Get the API subversion.
Definition
SubscriptionContext.cpp:47
web
This namespace implements the web server and related components.
Definition
Types.hpp:23
src
web
SubscriptionContext.hpp
Generated by
1.17.0