20 #ifndef RIPPLE_APP_REPORTING_P2PPROXY_H_INCLUDED
21 #define RIPPLE_APP_REPORTING_P2PPROXY_H_INCLUDED
23 #include <ripple/app/main/Application.h>
24 #include <ripple/proto/org/xrpl/rpc/v1/xrp_ledger.grpc.pb.h>
25 #include <ripple/rpc/Context.h>
26 #include <ripple/rpc/impl/Handler.h>
28 #include <boost/beast/websocket.hpp>
29 #include <grpcpp/grpcpp.h>
44 template <
class Request>
55 if (request.ledger().ledger_case() ==
56 org::xrpl::rpc::v1::LedgerSpecifier::LedgerCase::kShortcut)
58 if (request.ledger().shortcut() !=
59 org::xrpl::rpc::v1::LedgerSpecifier::SHORTCUT_VALIDATED &&
60 request.ledger().shortcut() !=
61 org::xrpl::rpc::v1::LedgerSpecifier::SHORTCUT_UNSPECIFIED)
68 org::xrpl::rpc::v1::GetLedgerDiffRequest>::value)
70 auto help = [](
auto specifier) {
71 if (specifier.ledger_case() ==
72 org::xrpl::rpc::v1::LedgerSpecifier::LedgerCase::kShortcut)
74 if (specifier.shortcut() !=
75 org::xrpl::rpc::v1::LedgerSpecifier::
77 specifier.shortcut() !=
78 org::xrpl::rpc::v1::LedgerSpecifier::
84 return help(request.base_ledger()) || help(request.desired_ledger());
93 template <
class Request>