cpp-msgpack-rpc
0.2.0
An RPC library implementing MessagePack RPC.
Toggle main menu visibility
Loading...
Searching...
No Matches
tcp_backend.h
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
*/
20
#pragma once
21
22
#include <memory>
23
#include <string_view>
24
25
#include "
msgpack_rpc/config/message_parser_config.h
"
26
#include "
msgpack_rpc/executors/i_executor.h
"
27
#include "
msgpack_rpc/logging/logger.h
"
28
#include "
msgpack_rpc/transport/i_acceptor_factory.h
"
29
#include "
msgpack_rpc/transport/i_backend.h
"
30
#include "
msgpack_rpc/transport/i_connector.h
"
31
32
namespace
msgpack_rpc::transport::tcp
{
33
37
class
TCPBackend
final :
public
IBackend {
38
public
:
46
TCPBackend
(
const
std::shared_ptr<executors::IExecutor>&
executor
,
47
const
config::MessageParserConfig
& message_parser_config,
48
std::shared_ptr<logging::Logger> logger);
49
51
[[nodiscard]] std::string_view
scheme
()
const
noexcept
override
;
52
54
[[nodiscard]] std::shared_ptr<IAcceptorFactory>
create_acceptor_factory
()
55
override
;
56
58
[[nodiscard]] std::shared_ptr<IConnector>
create_connector
()
override
;
59
60
TCPBackend
(
const
TCPBackend
&) =
delete
;
61
TCPBackend
(
TCPBackend
&&) =
delete
;
62
TCPBackend
& operator=(
const
TCPBackend
&) =
delete
;
63
TCPBackend
& operator=(
TCPBackend
&&) =
delete
;
64
66
~TCPBackend
() noexcept override;
67
68
private:
74
[[nodiscard]]
std
::shared_ptr<
executors
::IExecutor>
executor
() const;
75
77
std
::weak_ptr<
executors
::IExecutor>
executor_
;
78
80
config
::MessageParserConfig
message_parser_config_
;
81
83
std
::shared_ptr<
logging
::Logger>
logger_
;
84
};
85
86
}
// namespace msgpack_rpc::transport::tcp
msgpack_rpc::config::MessageParserConfig
Class of configuration of parsers of messages.
Definition
message_parser_config.h:31
msgpack_rpc::transport::tcp::TCPBackend::TCPBackend
TCPBackend(const std::shared_ptr< executors::IExecutor > &executor, const config::MessageParserConfig &message_parser_config, std::shared_ptr< logging::Logger > logger)
Constructor.
Definition
tcp_backend.cpp:34
msgpack_rpc::transport::tcp::TCPBackend::message_parser_config_
config::MessageParserConfig message_parser_config_
Configuration of parsers of messages.
Definition
tcp_backend.h:80
msgpack_rpc::transport::tcp::TCPBackend::scheme
std::string_view scheme() const noexcept override
Get the scheme.
Definition
tcp_backend.cpp:41
msgpack_rpc::transport::tcp::TCPBackend::logger_
std::shared_ptr< logging::Logger > logger_
Logger.
Definition
tcp_backend.h:83
msgpack_rpc::transport::tcp::TCPBackend::executor
std::shared_ptr< executors::IExecutor > executor() const
Get the executor.
Definition
tcp_backend.cpp:57
msgpack_rpc::transport::tcp::TCPBackend::create_acceptor_factory
std::shared_ptr< IAcceptorFactory > create_acceptor_factory() override
Create a factory to create acceptors.
Definition
tcp_backend.cpp:45
msgpack_rpc::transport::tcp::TCPBackend::executor_
std::weak_ptr< executors::IExecutor > executor_
Executor.
Definition
tcp_backend.h:77
msgpack_rpc::transport::tcp::TCPBackend::~TCPBackend
~TCPBackend() noexcept override
Destructor.
msgpack_rpc::transport::tcp::TCPBackend::create_connector
std::shared_ptr< IConnector > create_connector() override
Create a connector to connect to endpoints of acceptors.
Definition
tcp_backend.cpp:50
i_acceptor_factory.h
Definition of IAcceptorFactory class.
i_backend.h
Definition of IBackend class.
i_connector.h
Definition of IConnector class.
i_executor.h
Definition of IExecutor class.
logger.h
Definition of Logger class.
message_parser_config.h
Definition of MessageParserConfig class.
msgpack_rpc::config
Namespace of configurations.
Definition
client_config.h:32
msgpack_rpc::executors
Namespace of executors to process asynchronous tasks.
Definition
asio_context_type.h:24
msgpack_rpc::logging
Namespace of logging.
Definition
i_log_sink.h:27
msgpack_rpc::transport::tcp
Namespace of transport of messages via TCP.
Definition
tcp_acceptor.h:28
std
STL namespace.
src
msgpack_rpc
transport
tcp
tcp_backend.h
Generated on
for cpp-msgpack-rpc by
1.18.0