Bitcoin ABC 0.30.5
P2P Digital Currency
|
#include <rpc/server.h>
#include <common/args.h>
#include <config.h>
#include <logging.h>
#include <rpc/util.h>
#include <shutdown.h>
#include <sync.h>
#include <util/strencodings.h>
#include <util/string.h>
#include <util/time.h>
#include <boost/signals2/signal.hpp>
#include <cassert>
#include <chrono>
#include <memory>
#include <mutex>
#include <set>
#include <unordered_map>
Go to the source code of this file.
Classes | |
struct | RPCCommandExecutionInfo |
struct | RPCServerInfo |
struct | RPCCommandExecution |
struct | CRPCSignals |
Typedefs | |
using | SteadyClock = std::chrono::steady_clock |
Functions | |
static bool fRPCInWarmup | GUARDED_BY (g_rpc_warmup_mutex) = "RPC server started" |
static std::map< std::string, std::unique_ptr< RPCTimerBase > > deadlineTimers | GUARDED_BY (g_deadline_timers_mutex) |
static bool | ExecuteCommand (const Config &config, const CRPCCommand &command, const JSONRPCRequest &request, UniValue &result, bool last_handler) |
static RPCHelpMan | help () |
static RPCHelpMan | stop () |
static RPCHelpMan | uptime () |
static RPCHelpMan | getrpcinfo () |
void | StartRPC () |
void | InterruptRPC () |
void | StopRPC () |
bool | IsRPCRunning () |
Query whether RPC is running. More... | |
void | RpcInterruptionPoint () |
Throw JSONRPCError if RPC is not running. More... | |
void | SetRPCWarmupStatus (const std::string &newStatus) |
Set the RPC warmup status. More... | |
void | SetRPCWarmupFinished () |
Mark warmup as done. More... | |
bool | RPCIsInWarmup (std::string *outStatus) |
Returns the current warmup state. More... | |
bool | IsDeprecatedRPCEnabled (const ArgsManager &args, const std::string &method) |
static UniValue | JSONRPCExecOne (const Config &config, RPCServer &rpcServer, JSONRPCRequest jreq, const UniValue &req) |
std::string | JSONRPCExecBatch (const Config &config, RPCServer &rpcServer, const JSONRPCRequest &jreq, const UniValue &vReq) |
static JSONRPCRequest | transformNamedArguments (const JSONRPCRequest &in, const std::vector< std::pair< std::string, bool > > &argNames) |
Process named arguments into a vector of positional arguments, based on the passed-in specification for the RPC call's arguments. More... | |
static bool | ExecuteCommands (const Config &config, const std::vector< const CRPCCommand * > &commands, const JSONRPCRequest &request, UniValue &result) |
void | RPCSetTimerInterfaceIfUnset (RPCTimerInterface *iface) |
Set the factory function for timer, but only, if unset. More... | |
void | RPCSetTimerInterface (RPCTimerInterface *iface) |
Set the factory function for timers. More... | |
void | RPCUnsetTimerInterface (RPCTimerInterface *iface) |
Unset factory function for timers. More... | |
void | RPCRunLater (const std::string &name, std::function< void()> func, int64_t nSeconds) |
Run func nSeconds from now. More... | |
int | RPCSerializationFlags () |
Retrieves any serialization flags requested in command line argument. More... | |
Variables | |
static GlobalMutex | g_rpc_warmup_mutex |
static std::atomic< bool > | g_rpc_running {false} |
static RPCTimerInterface * | timerInterface = nullptr |
static GlobalMutex | g_deadline_timers_mutex |
static RPCServerInfo | g_rpc_server_info |
static struct CRPCSignals | g_rpcSignals |
static const CRPCCommand | vRPCCommands [] |
CRPCTable | tableRPC |
using SteadyClock = std::chrono::steady_clock |
Definition at line 28 of file server.cpp.
|
static |
Definition at line 603 of file server.cpp.
|
static |
Definition at line 570 of file server.cpp.
|
static |
|
static |
|
static |
|
static |
Definition at line 182 of file server.cpp.
void InterruptRPC | ( | ) |
bool IsDeprecatedRPCEnabled | ( | const ArgsManager & | args, |
const std::string & | method | ||
) |
Definition at line 407 of file server.cpp.
bool IsRPCRunning | ( | ) |
Query whether RPC is running.
Definition at line 378 of file server.cpp.
std::string JSONRPCExecBatch | ( | const Config & | config, |
RPCServer & | rpcServer, | ||
const JSONRPCRequest & | jreq, | ||
const UniValue & | vReq | ||
) |
Definition at line 435 of file server.cpp.
|
static |
Definition at line 416 of file server.cpp.
void RpcInterruptionPoint | ( | ) |
Throw JSONRPCError if RPC is not running.
Definition at line 382 of file server.cpp.
bool RPCIsInWarmup | ( | std::string * | outStatus | ) |
Returns the current warmup state.
Definition at line 399 of file server.cpp.
void RPCRunLater | ( | const std::string & | name, |
std::function< void()> | func, | ||
int64_t | nSeconds | ||
) |
Run func nSeconds from now.
Overrides previous timer <name> (if any).
Definition at line 664 of file server.cpp.
int RPCSerializationFlags | ( | ) |
Retrieves any serialization flags requested in command line argument.
Definition at line 679 of file server.cpp.
void RPCSetTimerInterface | ( | RPCTimerInterface * | iface | ) |
Set the factory function for timers.
Definition at line 654 of file server.cpp.
void RPCSetTimerInterfaceIfUnset | ( | RPCTimerInterface * | iface | ) |
Set the factory function for timer, but only, if unset.
Definition at line 648 of file server.cpp.
void RPCUnsetTimerInterface | ( | RPCTimerInterface * | iface | ) |
Unset factory function for timers.
Definition at line 658 of file server.cpp.
void SetRPCWarmupFinished | ( | ) |
Mark warmup as done.
RPC calls will be processed from now on.
Definition at line 393 of file server.cpp.
void SetRPCWarmupStatus | ( | const std::string & | newStatus | ) |
Set the RPC warmup status.
When this is done, all RPC calls will error out immediately with RPC_IN_WARMUP.
Definition at line 388 of file server.cpp.
void StartRPC | ( | ) |
|
static |
Definition at line 211 of file server.cpp.
void StopRPC | ( | ) |
Definition at line 365 of file server.cpp.
|
inlinestatic |
Process named arguments into a vector of positional arguments, based on the passed-in specification for the RPC call's arguments.
Definition at line 449 of file server.cpp.
|
static |
|
static |
Definition at line 38 of file server.cpp.
|
static |
Definition at line 31 of file server.cpp.
|
static |
Definition at line 55 of file server.cpp.
|
static |
Definition at line 30 of file server.cpp.
|
static |
CRPCTable tableRPC |
Definition at line 683 of file server.cpp.
|
static |
Definition at line 36 of file server.cpp.
|
static |
Definition at line 310 of file server.cpp.