rippled
Loading...
Searching...
No Matches
xrpld
rpc
handlers
PathFind.cpp
1
#include <xrpld/app/ledger/LedgerMaster.h>
2
#include <xrpld/app/main/Application.h>
3
#include <xrpld/app/paths/PathRequests.h>
4
#include <xrpld/rpc/Context.h>
5
6
#include <xrpl/protocol/ErrorCodes.h>
7
#include <xrpl/protocol/RPCErr.h>
8
#include <xrpl/protocol/jss.h>
9
#include <xrpl/resource/Fees.h>
10
11
namespace
xrpl
{
12
13
Json::Value
14
doPathFind
(
RPC::JsonContext
& context)
15
{
16
if
(context.
app
.
config
().
PATH_SEARCH_MAX
== 0)
17
return
rpcError
(
rpcNOT_SUPPORTED
);
18
19
auto
lpLedger = context.
ledgerMaster
.
getClosedLedger
();
20
21
if
(!context.
params
.
isMember
(jss::subcommand) ||
22
!context.
params
[jss::subcommand].
isString
())
23
{
24
return
rpcError
(
rpcINVALID_PARAMS
);
25
}
26
27
if
(!context.
infoSub
)
28
return
rpcError
(
rpcNO_EVENTS
);
29
30
context.
infoSub
->
setApiVersion
(context.
apiVersion
);
31
32
auto
sSubCommand = context.
params
[jss::subcommand].
asString
();
33
34
if
(sSubCommand ==
"create"
)
35
{
36
context.
loadType
=
Resource::feeHeavyBurdenRPC
;
37
context.
infoSub
->
clearRequest
();
38
return
context.
app
.
getPathRequests
().
makePathRequest
(
39
context.
infoSub
, lpLedger, context.
params
);
40
}
41
42
if
(sSubCommand ==
"close"
)
43
{
44
InfoSubRequest::pointer
request = context.
infoSub
->
getRequest
();
45
46
if
(!request)
47
return
rpcError
(
rpcNO_PF_REQUEST
);
48
49
context.
infoSub
->
clearRequest
();
50
return
request->doClose();
51
}
52
53
if
(sSubCommand ==
"status"
)
54
{
55
InfoSubRequest::pointer
request = context.
infoSub
->
getRequest
();
56
57
if
(!request)
58
return
rpcError
(
rpcNO_PF_REQUEST
);
59
60
return
request->doStatus(context.
params
);
61
}
62
63
return
rpcError
(
rpcINVALID_PARAMS
);
64
}
65
66
}
// namespace xrpl
Json::Value
Represents a JSON value.
Definition
json_value.h:131
Json::Value::isString
bool isString() const
Definition
json_value.cpp:1115
Json::Value::asString
std::string asString() const
Returns the unquoted string value.
Definition
json_value.cpp:471
Json::Value::isMember
bool isMember(char const *key) const
Return true if the object has a member named key.
Definition
json_value.cpp:1030
xrpl::Application::config
virtual Config & config()=0
xrpl::Application::getPathRequests
virtual PathRequests & getPathRequests()=0
xrpl::Config::PATH_SEARCH_MAX
int PATH_SEARCH_MAX
Definition
Config.h:179
xrpl::InfoSub::clearRequest
void clearRequest()
Definition
InfoSub.cpp:102
xrpl::InfoSub::setApiVersion
void setApiVersion(unsigned int apiVersion)
Definition
InfoSub.cpp:120
xrpl::InfoSub::getRequest
std::shared_ptr< InfoSubRequest > const & getRequest()
Definition
InfoSub.cpp:114
xrpl::LedgerMaster::getClosedLedger
std::shared_ptr< Ledger const > getClosedLedger()
Definition
LedgerMaster.h:60
xrpl::PathRequests::makePathRequest
Json::Value makePathRequest(std::shared_ptr< InfoSub > const &subscriber, std::shared_ptr< ReadView const > const &ledger, Json::Value const &request)
Definition
PathRequests.cpp:231
xrpl::Resource::feeHeavyBurdenRPC
Charge const feeHeavyBurdenRPC
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:6
xrpl::doPathFind
Json::Value doPathFind(RPC::JsonContext &)
Definition
PathFind.cpp:14
xrpl::rpcError
Json::Value rpcError(int iError)
Definition
RPCErr.cpp:12
xrpl::rpcNO_PF_REQUEST
@ rpcNO_PF_REQUEST
Definition
ErrorCodes.h:67
xrpl::rpcNO_EVENTS
@ rpcNO_EVENTS
Definition
ErrorCodes.h:35
xrpl::rpcNOT_SUPPORTED
@ rpcNOT_SUPPORTED
Definition
ErrorCodes.h:113
xrpl::rpcINVALID_PARAMS
@ rpcINVALID_PARAMS
Definition
ErrorCodes.h:65
std::shared_ptr
xrpl::RPC::Context::app
Application & app
Definition
Context.h:22
xrpl::RPC::Context::infoSub
InfoSub::pointer infoSub
Definition
Context.h:29
xrpl::RPC::Context::loadType
Resource::Charge & loadType
Definition
Context.h:23
xrpl::RPC::Context::apiVersion
unsigned int apiVersion
Definition
Context.h:30
xrpl::RPC::Context::ledgerMaster
LedgerMaster & ledgerMaster
Definition
Context.h:25
xrpl::RPC::JsonContext
Definition
Context.h:34
xrpl::RPC::JsonContext::params
Json::Value params
Definition
Context.h:44
Generated by
1.9.8