xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
xrpld
rpc
handlers
server_info
Version.h
1
#pragma once
2
3
#include <xrpld/app/main/Application.h>
// IWYU pragma: keep
4
#include <xrpld/rpc/Context.h>
5
#include <xrpld/rpc/MethodNames.h>
6
#include <xrpld/rpc/Role.h>
7
#include <xrpld/rpc/detail/Handler.h>
8
9
#include <xrpl/json/json_value.h>
10
#include <xrpl/protocol/ApiVersion.h>
11
12
#include <rpcspec/Errors.hpp>
13
14
#include <
cstdint
>
15
#include <expected>
16
#include <
functional
>
17
#include <
string_view
>
18
19
namespace
xrpl::rpc
{
20
21
class
VersionHandler
22
{
23
public
:
24
struct
Output
25
{
26
std::uint32_t
apiVersion
;
27
bool
betaEnabled
;
28
};
29
30
explicit
VersionHandler
(
JsonContext
& context) :
context_
(context)
31
{
32
}
33
34
[[nodiscard]] std::expected<Output, ::rpc::Status>
35
process
()
const
36
{
37
return
Output
{
38
.apiVersion =
context_
.get().apiVersion,
39
.betaEnabled =
context_
.get().app.config().betaRpcApi,
40
};
41
}
42
43
static
void
44
writeResult
(
json::Value
& obj,
Output
const
& output)
45
{
46
setVersion
(obj, output.
apiVersion
, output.
betaEnabled
);
47
}
48
49
// NOLINTBEGIN(readability-identifier-naming)
50
static
constexpr
std::string_view
name
=
method::kVersion
;
51
52
static
constexpr
unsigned
minApiVer
=
rpc::kApiMinimumSupportedVersion
;
53
54
static
constexpr
unsigned
maxApiVer
=
rpc::kApiMaximumValidVersion
;
55
56
static
constexpr
Role
role
=
Role::USER
;
57
58
static
constexpr
Condition
condition
=
Condition::NoCondition
;
59
// NOLINTEND(readability-identifier-naming)
60
61
private
:
62
std::reference_wrapper<JsonContext>
context_
;
63
};
64
65
}
// namespace xrpl::rpc
std::string_view
json::Value
Represents a JSON value.
Definition
json_value.h:117
xrpl::rpc::VersionHandler::condition
static constexpr Condition condition
Definition
Version.h:58
xrpl::rpc::VersionHandler::process
std::expected< Output, ::rpc::Status > process() const
Definition
Version.h:35
xrpl::rpc::VersionHandler::name
static constexpr std::string_view name
Definition
Version.h:50
xrpl::rpc::VersionHandler::VersionHandler
VersionHandler(JsonContext &context)
Definition
Version.h:30
xrpl::rpc::VersionHandler::maxApiVer
static constexpr unsigned maxApiVer
Definition
Version.h:54
xrpl::rpc::VersionHandler::writeResult
static void writeResult(json::Value &obj, Output const &output)
Definition
Version.h:44
xrpl::rpc::VersionHandler::minApiVer
static constexpr unsigned minApiVer
Definition
Version.h:52
xrpl::rpc::VersionHandler::role
static constexpr Role role
Definition
Version.h:56
xrpl::rpc::VersionHandler::context_
std::reference_wrapper< JsonContext > context_
Definition
Version.h:62
cstdint
functional
std::uint32_t
xrpl::rpc::method::kVersion
constexpr std::string_view kVersion
Definition
MethodNames.h:92
xrpl::rpc
API version numbers used in later API versions.
Definition
ApiVersion.h:36
xrpl::rpc::setVersion
void setVersion(json::Value &parent, unsigned int apiVersion, bool betaEnabled)
Definition
ApiVersion.h:61
xrpl::rpc::kApiMaximumValidVersion
static constexpr auto kApiMaximumValidVersion
Definition
ApiVersion.h:47
xrpl::rpc::kApiMinimumSupportedVersion
static constexpr auto kApiMinimumSupportedVersion
Definition
ApiVersion.h:42
xrpl::rpc::Condition
Condition
Definition
Handler.h:22
xrpl::rpc::Condition::NoCondition
@ NoCondition
Definition
Handler.h:23
xrpl::Role
Role
Indicates the level of administrative permission to grant.
Definition
Role.h:27
xrpl::Role::USER
@ USER
Definition
Role.h:27
std::reference_wrapper
string_view
xrpl::rpc::JsonContext
Definition
Context.h:41
xrpl::rpc::VersionHandler::Output
Definition
Version.h:25
xrpl::rpc::VersionHandler::Output::apiVersion
std::uint32_t apiVersion
Definition
Version.h:26
xrpl::rpc::VersionHandler::Output::betaEnabled
bool betaEnabled
Definition
Version.h:27
Generated by
1.17.0