#include #include #include #include #include #include #include #include #include #include #include #ifndef RIPPLE_REPORTING_HANDLERS_H #define RIPPLE_REPORTING_HANDLERS_H class ReportingETL; class SubscriptionManager; class WsSession; //------------------------------------------------------------------------------ static std::unordered_set forwardCommands{ "submit", "submit_multisigned", "fee", "path_find", "ripple_path_find", "manifest" }; enum RPCCommand { tx, account_tx, ledger, account_info, ledger_data, book_offers, ledger_range, ledger_entry, account_channels, account_lines, account_currencies, account_offers, account_objects, channel_authorize, channel_verify, subscribe, unsubscribe, server_info }; static std::unordered_map commandMap{ {"tx", tx}, {"account_tx", account_tx}, {"ledger", ledger}, {"ledger_range", ledger_range}, {"ledger_entry", ledger_entry}, {"account_info", account_info}, {"ledger_data", ledger_data}, {"book_offers", book_offers}, {"account_channels", account_channels}, {"account_lines", account_lines}, {"account_currencies", account_currencies}, {"account_offers", account_offers}, {"account_objects", account_objects}, {"channel_authorize", channel_authorize}, {"channel_verify", channel_verify}, {"subscribe", subscribe}, {"unsubscribe", unsubscribe}, {"server_info", server_info}}; boost::json::object doTx( boost::json::object const& request, BackendInterface const& backend); boost::json::object doAccountTx( boost::json::object const& request, BackendInterface const& backend); boost::json::object doBookOffers( boost::json::object const& request, BackendInterface const& backend); boost::json::object doLedgerData( boost::json::object const& request, BackendInterface const& backend); boost::json::object doLedgerEntry( boost::json::object const& request, BackendInterface const& backend); boost::json::object doLedger( boost::json::object const& request, BackendInterface const& backend); boost::json::object doLedgerRange( boost::json::object const& request, BackendInterface const& backend); boost::json::object doAccountInfo( boost::json::object const& request, BackendInterface const& backend); boost::json::object doAccountChannels( boost::json::object const& request, BackendInterface const& backend); boost::json::object doAccountLines( boost::json::object const& request, BackendInterface const& backend); boost::json::object doAccountCurrencies( boost::json::object const& request, BackendInterface const& backend); boost::json::object doAccountOffers( boost::json::object const& request, BackendInterface const& backend); boost::json::object doAccountObjects( boost::json::object const& request, BackendInterface const& backend); boost::json::object doChannelAuthorize(boost::json::object const& request); boost::json::object doChannelVerify(boost::json::object const& request); boost::json::object doServerInfo( boost::json::object const& request, BackendInterface const& backend); boost::json::object doSubscribe( boost::json::object const& request, std::shared_ptr& session, SubscriptionManager& manager); boost::json::object doUnsubscribe( boost::json::object const& request, std::shared_ptr& session, SubscriptionManager& manager); std::pair buildResponse( boost::json::object const& request, std::shared_ptr backend, std::shared_ptr manager, std::shared_ptr balancer, std::shared_ptr session); #endif // RIPPLE_REPORTING_HANDLERS_H