3#include "data/AmendmentCenterInterface.hpp"
4#include "data/BackendInterface.hpp"
5#include "etl/ETLServiceInterface.hpp"
7#include "feed/SubscriptionManagerInterface.hpp"
8#include "rpc/common/AnyHandler.hpp"
9#include "rpc/common/HandlerProvider.hpp"
10#include "rpc/common/Types.hpp"
11#include "util/log/Logger.hpp"
16#include <unordered_map>
17#include <unordered_set>
31 std::unordered_map<std::string, Handler> handlerMap_;
34 ProductionHandlerProvider(
36 std::shared_ptr<BackendInterface>
const& backend,
37 std::shared_ptr<feed::SubscriptionManagerInterface>
const& subscriptionManager,
38 std::shared_ptr<etl::LoadBalancerInterface>
const& balancer,
39 std::shared_ptr<etl::ETLServiceInterface const>
const& etl,
40 std::shared_ptr<data::AmendmentCenterInterface const>
const& amendmentCenter,
45 contains(std::string
const& command)
const override;
47 std::optional<AnyHandler>
48 getHandler(std::string
const& command)
const override;
51 isClioOnly(std::string
const& command)
const override;
53 std::unordered_set<std::string>
A type-erased Handler that can contain any (NextGen) RPC handler class.
Definition AnyHandler.hpp:20
Holds information about successful, failed, forwarded, etc. RPC handler calls.
Definition Counters.hpp:22
Interface for the provider of RPC handlers.
Definition HandlerProvider.hpp:13
std::optional< AnyHandler > getHandler(std::string const &command) const override
Get the handler for a given method.
Definition HandlerProvider.cpp:124
bool contains(std::string const &command) const override
Check if the provider contains a handler for a given method.
Definition HandlerProvider.cpp:118
bool isClioOnly(std::string const &command) const override
Check if a given method is Clio-only.
Definition HandlerProvider.cpp:133
All the config data will be stored and extracted from this class.
Definition ConfigDefinition.hpp:31
This namespace contains all the RPC logic and handlers.
Definition AMMHelpers.cpp:18