28#include "msgpack_rpc/impl/msgpack_rpc_export.h"
37class IClientBuilderImpl {
45 std::shared_ptr<transport::IBackend> backend) = 0;
59 [[nodiscard]]
virtual std::shared_ptr<clients::impl::IClientImpl>
64 IClientBuilderImpl& operator=(
const IClientBuilderImpl&) =
delete;
65 IClientBuilderImpl& operator=(IClientBuilderImpl&&) =
delete;
72 IClientBuilderImpl() noexcept = default;
83[[nodiscard]] MSGPACK_RPC_EXPORT
std::unique_ptr<IClientBuilderImpl>
95[[nodiscard]] MSGPACK_RPC_EXPORT
std::unique_ptr<IClientBuilderImpl>
97 const
std::shared_ptr<
logging::Logger>& logger);
Class of URIs (Uniform Resource Identifiers) to specify endpoints in this library.
virtual std::shared_ptr< clients::impl::IClientImpl > build()=0
Build a client.
IClientBuilderImpl() noexcept=default
Constructor.
virtual void register_protocol(std::shared_ptr< transport::IBackend > backend)=0
Register a protocol.
virtual ~IClientBuilderImpl() noexcept=default
Destructor.
virtual void connect_to(addresses::URI uri)=0
Add a URI to connect to.
Definition of ClientConfig class.
Definition of IAsyncExecutor class.
Definition of IBackend class.
Definition of IClientImpl class.
Definition of Logger class.
Namespace of internal implementations.
std::unique_ptr< IClientBuilderImpl > create_empty_client_builder_impl(std::shared_ptr< executors::IAsyncExecutor > executor, std::shared_ptr< logging::Logger > logger, config::ClientConfig config)
Create an empty IClientBuilderImpl object.
std::unique_ptr< IClientBuilderImpl > create_default_client_builder_impl(config::ClientConfig config, const std::shared_ptr< logging::Logger > &logger)
Create an IClientBuilderImpl object with default protocols.
Namespace of configurations.
Namespace of executors to process asynchronous tasks.