cpp-msgpack-rpc
0.2.0
An RPC library implementing MessagePack RPC.
Toggle main menu visibility
Loading...
Searching...
No Matches
unix_socket_backend.h
Go to the documentation of this file.
1
/*
2
* Copyright 2024 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 "
msgpack_rpc/config.h
"
23
24
#if MSGPACK_RPC_HAS_UNIX_SOCKETS
25
26
#include <memory>
27
#include <string_view>
28
29
#include "
msgpack_rpc/config/message_parser_config.h
"
30
#include "
msgpack_rpc/executors/i_executor.h
"
31
#include "
msgpack_rpc/logging/logger.h
"
32
#include "
msgpack_rpc/transport/i_acceptor_factory.h
"
33
#include "
msgpack_rpc/transport/i_backend.h
"
34
#include "
msgpack_rpc/transport/i_connector.h
"
35
36
namespace
msgpack_rpc::transport::unix_socket {
37
41
class
UnixSocketBackend final :
public
IBackend {
42
public
:
50
UnixSocketBackend(
const
std::shared_ptr<executors::IExecutor>& executor,
51
const
config::MessageParserConfig& message_parser_config,
52
std::shared_ptr<logging::Logger> logger);
53
55
[[nodiscard]] std::string_view scheme() const noexcept override;
56
58
[[nodiscard]] std::shared_ptr<IAcceptorFactory> create_acceptor_factory()
59
override;
60
62
[[nodiscard]] std::shared_ptr<IConnector> create_connector() override;
63
64
UnixSocketBackend(const UnixSocketBackend&) = delete;
65
UnixSocketBackend(UnixSocketBackend&&) = delete;
66
UnixSocketBackend& operator=(const UnixSocketBackend&) = delete;
67
UnixSocketBackend& operator=(UnixSocketBackend&&) = delete;
68
70
~UnixSocketBackend() noexcept override;
71
72
private:
78
[[nodiscard]] std::shared_ptr<executors::IExecutor> executor() const;
79
81
std::weak_ptr<executors::IExecutor> executor_;
82
84
config::MessageParserConfig message_parser_config_;
85
87
std::shared_ptr<logging::Logger> logger_;
88
};
89
90
}
// namespace msgpack_rpc::transport::unix_socket
91
92
#endif
config.h
Definitions of platform-specific macros.
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.
src
msgpack_rpc
transport
unix_socket
unix_socket_backend.h
Generated on
for cpp-msgpack-rpc by
1.18.0