Bitcoin Core  27.99.0
P2P Digital Currency
Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
RPCHelpMan Class Reference

#include <util.h>

Collaboration diagram for RPCHelpMan:
[legend]

Public Types

using RPCMethodImpl = std::function< UniValue(const RPCHelpMan &, const JSONRPCRequest &)>
 

Public Member Functions

 RPCHelpMan (std::string name, std::string description, std::vector< RPCArg > args, RPCResults results, RPCExamples examples)
 
 RPCHelpMan (std::string name, std::string description, std::vector< RPCArg > args, RPCResults results, RPCExamples examples, RPCMethodImpl fun)
 
UniValue HandleRequest (const JSONRPCRequest &request) const
 
template<typename R >
auto Arg (size_t i) const
 Helper to get a request argument. More...
 
template<typename R >
auto MaybeArg (size_t i) const
 
std::string ToString () const
 
UniValue GetArgMap () const
 Return the named args that need to be converted from string to another JSON type. More...
 
bool IsValidNumArgs (size_t num_args) const
 If the supplied number of args is neither too small nor too high. More...
 
std::vector< std::pair< std::string, bool > > GetArgNames () const
 Return list of arguments and whether they are named-only. More...
 

Public Attributes

const std::string m_name
 

Private Member Functions

template<typename R >
ArgValue (size_t i) const
 

Private Attributes

const RPCMethodImpl m_fun
 
const std::string m_description
 
const std::vector< RPCArgm_args
 
const RPCResults m_results
 
const RPCExamples m_examples
 
const JSONRPCRequestm_req {nullptr}
 

Detailed Description

Definition at line 396 of file util.h.

Member Typedef Documentation

◆ RPCMethodImpl

using RPCHelpMan::RPCMethodImpl = std::function<UniValue(const RPCHelpMan&, const JSONRPCRequest&)>

Definition at line 400 of file util.h.

Constructor & Destructor Documentation

◆ RPCHelpMan() [1/2]

RPCHelpMan::RPCHelpMan ( std::string  name,
std::string  description,
std::vector< RPCArg args,
RPCResults  results,
RPCExamples  examples 
)

Definition at line 516 of file util.cpp.

◆ RPCHelpMan() [2/2]

RPCHelpMan::RPCHelpMan ( std::string  name,
std::string  description,
std::vector< RPCArg args,
RPCResults  results,
RPCExamples  examples,
RPCMethodImpl  fun 
)

Definition at line 519 of file util.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ Arg()

template<typename R >
auto RPCHelpMan::Arg ( size_t  i) const
inline

Helper to get a request argument.

This function only works during m_fun(), i.e. it should only be used in RPC method implementations. The helper internally checks whether the user-passed argument isNull() and parses (from JSON) and returns the user-passed argument, or the default value derived from the RPCArg documentation, or a falsy value if no default was given.

Use Arg<Type>(i) to get the argument or its default value. Otherwise, use MaybeArg<Type>(i) to get the optional argument or a falsy value.

The Type passed to this helper must match the corresponding RPCArg::Type.

Definition at line 419 of file util.h.

◆ ArgValue()

template<typename R >
R RPCHelpMan::ArgValue ( size_t  i) const
private

◆ GetArgMap()

UniValue RPCHelpMan::GetArgMap ( ) const

Return the named args that need to be converted from string to another JSON type.

Definition at line 793 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetArgNames()

std::vector< std::pair< std::string, bool > > RPCHelpMan::GetArgNames ( ) const

Return list of arguments and whether they are named-only.

Definition at line 716 of file util.cpp.

◆ HandleRequest()

UniValue RPCHelpMan::HandleRequest ( const JSONRPCRequest request) const

Definition at line 606 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsValidNumArgs()

bool RPCHelpMan::IsValidNumArgs ( size_t  num_args) const

If the supplied number of args is neither too small nor too high.

Definition at line 704 of file util.cpp.

Here is the caller graph for this function:

◆ MaybeArg()

template<typename R >
auto RPCHelpMan::MaybeArg ( size_t  i) const
inline

Definition at line 431 of file util.h.

◆ ToString()

std::string RPCHelpMan::ToString ( ) const

Definition at line 731 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_args

const std::vector<RPCArg> RPCHelpMan::m_args
private

Definition at line 455 of file util.h.

◆ m_description

const std::string RPCHelpMan::m_description
private

Definition at line 454 of file util.h.

◆ m_examples

const RPCExamples RPCHelpMan::m_examples
private

Definition at line 457 of file util.h.

◆ m_fun

const RPCMethodImpl RPCHelpMan::m_fun
private

Definition at line 453 of file util.h.

◆ m_name

const std::string RPCHelpMan::m_name

Definition at line 450 of file util.h.

◆ m_req

const JSONRPCRequest* RPCHelpMan::m_req {nullptr}
mutableprivate

Definition at line 458 of file util.h.

◆ m_results

const RPCResults RPCHelpMan::m_results
private

Definition at line 456 of file util.h.


The documentation for this class was generated from the following files: