20 #ifndef RIPPLE_CORE_GRPCSERVER_H_INCLUDED
21 #define RIPPLE_CORE_GRPCSERVER_H_INCLUDED
23 #include <ripple/app/main/Application.h>
24 #include <ripple/core/JobQueue.h>
25 #include <ripple/core/Stoppable.h>
26 #include <ripple/net/InfoSub.h>
27 #include <ripple/protocol/ErrorCodes.h>
28 #include <ripple/resource/Charge.h>
29 #include <ripple/rpc/Context.h>
30 #include <ripple/rpc/GRPCHandlers.h>
31 #include <ripple/rpc/Role.h>
32 #include <ripple/rpc/impl/Handler.h>
33 #include <ripple/rpc/impl/RPCHelpers.h>
34 #include <ripple/rpc/impl/Tuning.h>
36 #include "org/xrpl/rpc/v1/xrp_ledger.grpc.pb.h"
37 #include <grpcpp/grpcpp.h>
81 org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService
service_;
94 template <
class Request,
class Response>
96 org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService&,
99 grpc::ServerAsyncResponseWriter<Response>*,
100 grpc::CompletionQueue*,
101 grpc::ServerCompletionQueue*,
106 template <
class Request,
class Response>
138 template <
class Request,
class Response>
146 org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService&
service_;
149 grpc::ServerCompletionQueue&
cq_;
193 org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService& service,
194 grpc::ServerCompletionQueue& cq,
void onStart() override
Override called during start.
std::shared_ptr< Processor > clone() override
CallData & operator=(const CallData &)=delete
static constexpr unsigned apiVersion
org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService service_
std::vector< std::shared_ptr< Processor > > requests_
grpc::ServerCompletionQueue & cq_
RPC::Condition requiredCondition_
std::unique_ptr< grpc::Server > server_
virtual bool isFinished() override
std::atomic_bool finished_
Handler< Request, Response > handler_
virtual bool isFinished()=0
org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService & service_
std::unique_ptr< grpc::ServerCompletionQueue > cq_
Provides an interface for starting and stopping.
Resource::Consumer getUsage()
GRPCServer & operator=(const GRPCServer &)=delete
Processor & operator=(const Processor &)=delete
GRPCServerImpl & operator=(const GRPCServerImpl &)=delete
GRPCServerImpl(Application &app)
A generic endpoint for log messages.
Resource::Charge getLoadType()
BindListener< Request, Response > bindListener_
Resource::Charge loadType_
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::vector< std::shared_ptr< Processor > > setupListeners()
An endpoint that consumes resources.
virtual std::shared_ptr< Processor > clone()=0
void onStop() override
Override called when the stop notification is issued.
GRPCServer(Application &app, Stoppable &parent)
virtual ~CallData()=default
virtual ~Processor()=default
Role
Indicates the level of administrative permission to grant.
CallData(org::xrpl::rpc::v1::XRPLedgerAPIService::AsyncService &service, grpc::ServerCompletionQueue &cq, Application &app, BindListener< Request, Response > bindListener, Handler< Request, Response > handler, RPC::Condition requiredCondition, Resource::Charge loadType)
virtual void process() override
std::string serverAddress_
grpc::ServerAsyncResponseWriter< Response > responder_