Bitcoin ABC 0.30.5
P2P Digital Currency
Public Types | Public Member Functions | Public Attributes | List of all members
RPCArg Struct Reference

#include <util.h>

Collaboration diagram for RPCArg:
[legend]

Public Types

enum class  Type {
  OBJ , ARR , STR , NUM ,
  BOOL , OBJ_NAMED_PARAMS , OBJ_USER_KEYS , AMOUNT ,
  STR_HEX , RANGE
}
 
enum class  Optional { NO , OMITTED , OMITTED_NAMED_ARG }
 
using DefaultHint = std::string
 Hint for default value. More...
 
using Default = UniValue
 Default constant value. More...
 
using Fallback = std::variant< Optional, DefaultHint, Default >
 

Public Member Functions

 RPCArg (std::string name, Type type, Fallback fallback, std::string description, RPCArgOptions opts={})
 
 RPCArg (std::string name, Type type, Fallback fallback, std::string description, std::vector< RPCArg > inner, RPCArgOptions opts={})
 
bool IsOptional () const
 
UniValue MatchesType (const UniValue &request) const
 Check whether the request JSON type matches. More...
 
std::string GetFirstName () const
 Return the first of all aliases. More...
 
std::string GetName () const
 Return the name, throws when there are aliases. More...
 
std::string ToString (bool oneline) const
 Return the type string of the argument. More...
 
std::string ToStringObj (bool oneline) const
 Return the type string of the argument when it is in an object (dict). More...
 
std::string ToDescriptionString (bool is_named_arg) const
 Return the description string, including the argument type and whether the argument is required. More...
 

Public Attributes

const std::string m_names
 The name of the arg (can be empty for inner args, can contain multiple aliases separated by | for named request arguments) More...
 
const Type m_type
 
const std::vector< RPCArgm_inner
 Only used for arrays or dicts. More...
 
const Fallback m_fallback
 
const std::string m_description
 
const RPCArgOptions m_opts
 

Detailed Description

Definition at line 150 of file util.h.

Member Typedef Documentation

◆ Default

Default constant value.

Definition at line 197 of file util.h.

◆ DefaultHint

using RPCArg::DefaultHint = std::string

Hint for default value.

Definition at line 195 of file util.h.

◆ Fallback

using RPCArg::Fallback = std::variant<Optional, DefaultHint, Default>

Definition at line 198 of file util.h.

Member Enumeration Documentation

◆ Optional

enum class RPCArg::Optional
strong
Enumerator
NO 

Required arg.

OMITTED 

The arg is optional for one of two reasons:

Optional arg that is a named argument and has a default value of null.

Optional argument with default value omitted because they are implicitly clear. That is, elements in an array may not exist by default. When possible, the default value should be specified.

OMITTED_NAMED_ARG 

Definition at line 177 of file util.h.

◆ Type

enum class RPCArg::Type
strong
Enumerator
OBJ 
ARR 
STR 
NUM 
BOOL 
OBJ_NAMED_PARAMS 

Special type that behaves almost exactly like OBJ, defining an options object with a list of pre-defined keys.

The only difference between OBJ and OBJ_NAMED_PARAMS is that OBJ_NAMED_PARMS also allows the keys to be passed as top-level named parameters, as a more convenient way to pass options to the RPC method without nesting them.

OBJ_USER_KEYS 

Special type where the user must set the keys e.g.

to define multiple addresses; as opposed to e.g. an options object where the keys are predefined

AMOUNT 

Special type representing a floating point amount (can be either NUM or STR)

STR_HEX 

Special type that is a STR with only hex chars.

RANGE 

Special type that is a NUM or [NUM,NUM].

Definition at line 151 of file util.h.

Constructor & Destructor Documentation

◆ RPCArg() [1/2]

RPCArg::RPCArg ( std::string  name,
Type  type,
Fallback  fallback,
std::string  description,
RPCArgOptions  opts = {} 
)
inline

Definition at line 210 of file util.h.

◆ RPCArg() [2/2]

RPCArg::RPCArg ( std::string  name,
Type  type,
Fallback  fallback,
std::string  description,
std::vector< RPCArg inner,
RPCArgOptions  opts = {} 
)
inline

Definition at line 220 of file util.h.

Member Function Documentation

◆ GetFirstName()

std::string RPCArg::GetFirstName ( ) const

Return the first of all aliases.

Definition at line 834 of file util.cpp.

Here is the caller graph for this function:

◆ GetName()

std::string RPCArg::GetName ( ) const

Return the name, throws when there are aliases.

Definition at line 838 of file util.cpp.

Here is the caller graph for this function:

◆ IsOptional()

bool RPCArg::IsOptional ( ) const

Definition at line 843 of file util.cpp.

Here is the caller graph for this function:

◆ MatchesType()

UniValue RPCArg::MatchesType ( const UniValue request) const

Check whether the request JSON type matches.

Returns true if type matches, or object describing error(s) if not.

Definition at line 814 of file util.cpp.

Here is the call graph for this function:

◆ ToDescriptionString()

std::string RPCArg::ToDescriptionString ( bool  is_named_arg) const

Return the description string, including the argument type and whether the argument is required.

Definition at line 851 of file util.cpp.

Here is the caller graph for this function:

◆ ToString()

std::string RPCArg::ToString ( bool  oneline) const

Return the type string of the argument.

Set oneline to allow it to be overridden by a custom oneline type string (m_opts.oneline_description).

Definition at line 1215 of file util.cpp.

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

◆ ToStringObj()

std::string RPCArg::ToStringObj ( bool  oneline) const

Return the type string of the argument when it is in an object (dict).

Set oneline to get the oneline representation (less whitespace)

Definition at line 1175 of file util.cpp.

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

Member Data Documentation

◆ m_description

const std::string RPCArg::m_description

Definition at line 207 of file util.h.

◆ m_fallback

const Fallback RPCArg::m_fallback

Definition at line 206 of file util.h.

◆ m_inner

const std::vector<RPCArg> RPCArg::m_inner

Only used for arrays or dicts.

Definition at line 205 of file util.h.

◆ m_names

const std::string RPCArg::m_names

The name of the arg (can be empty for inner args, can contain multiple aliases separated by | for named request arguments)

Definition at line 202 of file util.h.

◆ m_opts

const RPCArgOptions RPCArg::m_opts

Definition at line 208 of file util.h.

◆ m_type

const Type RPCArg::m_type

Definition at line 203 of file util.h.


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