3#include "data/Types.hpp"
4#include "feed/Types.hpp"
6#include <boost/asio/executor_work_guard.hpp>
7#include <boost/asio/io_context.hpp>
8#include <boost/asio/spawn.hpp>
9#include <boost/json/object.hpp>
10#include <xrpl/protocol/AccountID.h>
11#include <xrpl/protocol/Book.h>
12#include <xrpl/protocol/Fees.h>
13#include <xrpl/protocol/LedgerHeader.h>
56 xrpl::LedgerHeader
const& lgrInfo,
57 std::vector<data::TransactionAndMetadata>
const& transactions
105 virtual boost::json::object
106 subLedger(boost::asio::yield_context yield, SubscriberSharedPtr
const& subscriber) = 0;
124 xrpl::LedgerHeader
const& lgrInfo,
125 xrpl::Fees
const& fees,
126 std::string
const& ledgerRange,
127 std::uint32_t txnCount
193 subAccount(xrpl::AccountID
const& account, SubscriberSharedPtr
const& subscriber) = 0;
201 unsubAccount(xrpl::AccountID
const& account, SubscriberSharedPtr
const& subscriber) = 0;
210 subBook(xrpl::Book
const& book, SubscriberSharedPtr
const& subscriber) = 0;
218 unsubBook(xrpl::Book
const& book, SubscriberSharedPtr
const& subscriber) = 0;
228 xrpl::LedgerHeader
const& lgrInfo
236 [[nodiscard]]
virtual boost::json::object
251 [[nodiscard]]
virtual uint32_t
Interface of subscription manager. A subscription manager is responsible for managing the subscriptio...
Definition SubscriptionManagerInterface.hpp:25
virtual void unsubBook(xrpl::Book const &book, SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the transactions feed for particular order book.
virtual void subBookChanges(SubscriberSharedPtr const &subscriber)=0
Subscribe to the book changes feed.
virtual void subProposedAccount(xrpl::AccountID const &account, SubscriberSharedPtr const &subscriber)=0
Subscribe to the proposed transactions feed, only receive the feed when particular account is affecte...
virtual void unsubProposedTransactions(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the proposed transactions feed.
virtual void setNetworkID(uint32_t networkID)=0
Set the networkID.
virtual void subAccount(xrpl::AccountID const &account, SubscriberSharedPtr const &subscriber)=0
Subscribe to the transactions feed, only receive the feed when particular account is affected.
virtual boost::json::object report() const =0
Get the number of subscribers.
virtual void pubLedger(xrpl::LedgerHeader const &lgrInfo, xrpl::Fees const &fees, std::string const &ledgerRange, std::uint32_t txnCount)=0
Publish the ledger feed.
virtual uint32_t getNetworkID() const =0
Get the networkID.
virtual void forwardValidation(boost::json::object const &validationJson)=0
Forward the validation feed.
virtual void subValidation(SubscriberSharedPtr const &subscriber)=0
Subscribe to the validation feed.
virtual void unsubValidation(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the validation feed.
virtual void unsubTransactions(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the transactions feed.
virtual void unsubBookChanges(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the book changes feed.
virtual void forwardProposedTransaction(boost::json::object const &receivedTxJson)=0
Forward the proposed transactions feed.
virtual void pubTransaction(data::TransactionAndMetadata const &txMeta, xrpl::LedgerHeader const &lgrInfo)=0
Forward the transactions feed.
virtual void stop()=0
Stop the SubscriptionManager and wait for all jobs to finish.
virtual void forwardManifest(boost::json::object const &manifestJson)=0
Forward the manifest feed.
virtual void subManifest(SubscriberSharedPtr const &subscriber)=0
Subscribe to the manifest feed.
virtual void subProposedTransactions(SubscriberSharedPtr const &subscriber)=0
Subscribe to the proposed transactions feed.
virtual void unsubAccount(xrpl::AccountID const &account, SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the transactions feed for particular account.
virtual void subBook(xrpl::Book const &book, SubscriberSharedPtr const &subscriber)=0
Subscribe to the transactions feed, only receive feed when particular order book is affected.
virtual boost::json::object subLedger(boost::asio::yield_context yield, SubscriberSharedPtr const &subscriber)=0
Subscribe to the ledger feed.
virtual void pubBookChanges(xrpl::LedgerHeader const &lgrInfo, std::vector< data::TransactionAndMetadata > const &transactions)=0
Publish the book changes feed.
virtual void unsubProposedAccount(xrpl::AccountID const &account, SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the proposed transactions feed for particular account.
virtual void subTransactions(SubscriberSharedPtr const &subscriber)=0
Subscribe to the transactions feed.
virtual void unsubManifest(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the manifest feed.
virtual void unsubLedger(SubscriberSharedPtr const &subscriber)=0
Unsubscribe to the ledger feed.
This namespace implements everything related to subscriptions.
Definition BookChangesFeed.hpp:14