cpp-msgpack-rpc 0.2.0
An RPC library implementing MessagePack RPC.
Loading...
Searching...
No Matches
client_builder_impl.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2023 MusicScience37 (Kenta Kabashima)
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
21
22#include <memory>
23
27
29
30std::unique_ptr<IClientBuilderImpl> create_empty_client_builder_impl(
31 std::shared_ptr<executors::IAsyncExecutor> executor,
32 std::shared_ptr<logging::Logger> logger, config::ClientConfig config) {
33 return std::make_unique<ClientBuilderImpl>(std::move(executor),
34 std::move(logger), std::move(config), transport::BackendList());
35}
36
37std::unique_ptr<IClientBuilderImpl> create_default_client_builder_impl(
39 const std::shared_ptr<logging::Logger>& logger) {
40 const auto executor = executors::create_executor(logger, config.executor());
41
42 auto builder =
43 std::make_unique<ClientBuilderImpl>(executor, logger, std::move(config),
45 executor, config.message_parser(), logger));
46
47 return builder;
48}
49
50} // namespace msgpack_rpc::clients::impl
Definition of BackendList class.
Class of configuration of clients.
Class of lists of backends of protocols.
Implementation of ClientBuilderImpl class.
Definition of create_default_backend_list function.
Definition of IClientBuilderImpl 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.
std::shared_ptr< IAsyncExecutor > create_executor(std::shared_ptr< logging::Logger > logger, const config::ExecutorConfig &config)
Create an executor.
BackendList create_default_backend_list(const std::shared_ptr< executors::IExecutor > &executor, const config::MessageParserConfig &message_parser_config, const std::shared_ptr< logging::Logger > &logger)
Create a list of backends with default backends of protocols.