1#ifndef XRPL_CORE_GRPCSERVER_H_INCLUDED 
    2#define XRPL_CORE_GRPCSERVER_H_INCLUDED 
    4#include <xrpld/app/main/Application.h> 
    5#include <xrpld/core/JobQueue.h> 
    6#include <xrpld/rpc/Context.h> 
    7#include <xrpld/rpc/GRPCHandlers.h> 
    8#include <xrpld/rpc/InfoSub.h> 
    9#include <xrpld/rpc/Role.h> 
   10#include <xrpld/rpc/detail/Handler.h> 
   12#include <xrpl/proto/org/xrpl/rpc/v1/xrp_ledger.grpc.pb.h> 
   13#include <xrpl/resource/Charge.h> 
   15#include <grpcpp/grpcpp.h> 
   59    org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService 
service_;
 
   75    template <
class Request, 
class Response>
 
   77        org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService&,
 
   80        grpc::ServerAsyncResponseWriter<Response>*,
 
   81        grpc::CompletionQueue*,
 
   82        grpc::ServerCompletionQueue*,
 
   87    template <
class Request, 
class Response>
 
   93    template <
class Request, 
class Response>
 
   95        org::xrpl::rpc::v1::XRPLedgerAPIService::Stub*,
 
  125    boost::asio::ip::tcp::endpoint
 
  130    template <
class Request, 
class Response>
 
  138        org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService& 
service_;
 
  141        grpc::ServerCompletionQueue& 
cq_;
 
  187            org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService& service,
 
  188            grpc::ServerCompletionQueue& cq,
 
 
 
  300    boost::asio::ip::tcp::endpoint
 
 
A generic endpoint for log messages.
 
Resource::Charge loadType_
 
CallData(CallData const &)=delete
 
Forward< Request, Response > forward_
 
Resource::Consumer getUsage()
 
std::optional< std::string > getUser()
 
grpc::ServerCompletionQueue & cq_
 
Handler< Request, Response > handler_
 
virtual ~CallData()=default
 
CallData & operator=(CallData const &)=delete
 
Resource::Charge getLoadType()
 
void setIsUnlimited(Response &response, bool isUnlimited)
 
std::optional< boost::asio::ip::address > getClientIpAddress()
 
RPC::Condition requiredCondition_
 
std::optional< boost::asio::ip::tcp::endpoint > getProxiedClientEndpoint()
 
std::atomic_bool finished_
 
BindListener< Request, Response > bindListener_
 
grpc::ServerAsyncResponseWriter< Response > responder_
 
Role getRole(bool isUnlimited)
 
std::vector< boost::asio::ip::address > const  & secureGatewayIPs_
 
std::shared_ptr< Processor > clone() override
 
std::optional< boost::asio::ip::tcp::endpoint > getClientEndpoint()
 
std::optional< boost::asio::ip::address > getProxiedClientIpAddress()
 
org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService & service_
 
virtual void process() override
 
virtual bool isFinished() override
 
void forwardToP2p(RPC::GRPCContext< Request > &context)
 
std::string serverAddress_
 
std::vector< std::shared_ptr< Processor > > setupListeners()
 
std::unique_ptr< grpc::Server > server_
 
std::unique_ptr< grpc::ServerCompletionQueue > cq_
 
org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService service_
 
std::vector< std::shared_ptr< Processor > > requests_
 
GRPCServerImpl(GRPCServerImpl const &)=delete
 
GRPCServerImpl & operator=(GRPCServerImpl const &)=delete
 
static unsigned constexpr apiVersion
 
boost::asio::ip::tcp::endpoint getEndpoint() const
 
std::vector< boost::asio::ip::address > secureGatewayIPs_
 
std::uint16_t serverPort_
 
GRPCServer(Application &app)
 
GRPCServer & operator=(GRPCServer const &)=delete
 
boost::asio::ip::tcp::endpoint getEndpoint() const
 
GRPCServer(GRPCServer const &)=delete
 
virtual bool isFinished()=0
 
virtual std::shared_ptr< Processor > clone()=0
 
Processor(Processor const &)=delete
 
Processor & operator=(Processor const &)=delete
 
virtual ~Processor()=default
 
An endpoint that consumes resources.
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
bool isUnlimited(Role const &role)
ADMIN and IDENTIFIED roles shall have unlimited resources.
 
Role
Indicates the level of administrative permission to grant.