25#include <unordered_map>
28#include <fmt/format.h>
51 void append(std::shared_ptr<transport::IBackend> backend) {
52 const auto scheme = backend->scheme();
53 const auto result =
backends_.try_emplace(scheme, std::move(backend));
56 fmt::format(
"Duplicate scheme : \"{}\".", scheme));
66 [[nodiscard]] std::shared_ptr<transport::IBackend>
find(
67 std::string_view scheme)
const {
68 const auto backend_iter =
backends_.find(scheme);
71 fmt::format(
"Invalid scheme: {}.", scheme));
73 return backend_iter->second;
78 std::unordered_map<std::string_view, std::shared_ptr<transport::IBackend>>
Class of exceptions in cpp-msgpack-rpc library.
std::unordered_map< std::string_view, std::shared_ptr< transport::IBackend > > backends_
Backends.
std::shared_ptr< transport::IBackend > find(std::string_view scheme) const
Find a backend. Throw an exception when not found.
void append(std::shared_ptr< transport::IBackend > backend)
Add a backend of the protocol.
BackendList()=default
Constructor.
Definition of IBackend class.
Definition of MsgpackRPCException class.
Namespace of transport of messages.
Definition of StatusCode enumeration.