Clio  develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
Factories.hpp
1#pragma once
2
3#include "data/Types.hpp"
4#include "rpc/Errors.hpp"
5#include "rpc/common/APIVersion.hpp"
6#include "util/Taggable.hpp"
7#include "web/Context.hpp"
8#include "web/SubscriptionContextInterface.hpp"
9
10#include <boost/asio/spawn.hpp>
11#include <boost/json.hpp>
12#include <boost/json/object.hpp>
13
14#include <expected>
15#include <functional>
16#include <string>
17
18/*
19 * This file contains various classes necessary for executing RPC handlers.
20 * Context gives the handlers access to various other parts of the application Status is used to
21 * report errors. And lastly, there are various functions for making Contexts, Statuses and
22 * serializing Status to JSON. This file is meant to contain any class or function that code outside
23 * of the rpc folder needs to use. For helper functions or classes used within the rpc folder, use
24 * RPCHelpers.h.
25 */
26namespace rpc {
27
41std::expected<web::Context, Status>
43 boost::asio::yield_context yc,
44 boost::json::object const& request,
46 util::TagDecoratorFactory const& tagFactory,
47 data::LedgerRange const& range,
48 std::string const& clientIp,
49 std::reference_wrapper<APIVersionParser const> apiVersionParser,
50 bool isAdmin
51);
52
65std::expected<web::Context, Status>
67 boost::asio::yield_context yc,
68 boost::json::object const& request,
69 util::TagDecoratorFactory const& tagFactory,
70 data::LedgerRange const& range,
71 std::string const& clientIp,
72 std::reference_wrapper<APIVersionParser const> apiVersionParser,
73 bool isAdmin
74);
75
76} // namespace rpc
This namespace contains all the RPC logic and handlers.
Definition AMMHelpers.cpp:18
std::expected< web::Context, Status > makeWsContext(boost::asio::yield_context yc, boost::json::object const &request, web::SubscriptionContextPtr session, util::TagDecoratorFactory const &tagFactory, data::LedgerRange const &range, std::string const &clientIp, std::reference_wrapper< APIVersionParser const > apiVersionParser, bool isAdmin)
A factory function that creates a Websocket context.
Definition Factories.cpp:28
std::expected< web::Context, Status > makeHttpContext(boost::asio::yield_context yc, boost::json::object const &request, util::TagDecoratorFactory const &tagFactory, data::LedgerRange const &range, std::string const &clientIp, std::reference_wrapper< APIVersionParser const > apiVersionParser, bool const isAdmin)
A factory function that creates a HTTP context.
Definition Factories.cpp:63
std::shared_ptr< SubscriptionContextInterface > SubscriptionContextPtr
An alias for shared pointer to a SubscriptionContextInterface.
Definition SubscriptionContextInterface.hpp:64