cpp-msgpack-rpc
0.2.0
An RPC library implementing MessagePack RPC.
Toggle main menu visibility
Loading...
Searching...
No Matches
i_single_thread_executor.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
24
#include "
msgpack_rpc/executors/i_executor.h
"
25
#include "msgpack_rpc/impl/msgpack_rpc_export.h"
26
#include "
msgpack_rpc/logging/logger.h
"
27
28
namespace
msgpack_rpc::executors
{
29
33
class
ISingleThreadExecutor :
public
IExecutor {
34
public
:
43
virtual
void
run
() = 0;
44
45
ISingleThreadExecutor
(
const
ISingleThreadExecutor&) =
delete
;
46
ISingleThreadExecutor
(ISingleThreadExecutor&&) =
delete
;
47
ISingleThreadExecutor& operator=(
const
ISingleThreadExecutor&) =
delete
;
48
ISingleThreadExecutor& operator=(ISingleThreadExecutor&&) =
delete
;
49
51
~ISingleThreadExecutor
() noexcept override = default;
52
53
protected:
55
ISingleThreadExecutor() noexcept = default;
56
};
57
69
[[nodiscard]] MSGPACK_RPC_EXPORT
std
::shared_ptr<ISingleThreadExecutor>
70
create_single_thread_executor
(
std
::shared_ptr<
logging
::Logger> logger);
71
72
}
// namespace msgpack_rpc::executors
msgpack_rpc::executors::ISingleThreadExecutor::run
virtual void run()=0
Run internal event loops to process asynchronous tasks.
msgpack_rpc::executors::ISingleThreadExecutor::ISingleThreadExecutor
ISingleThreadExecutor() noexcept=default
Constructor.
msgpack_rpc::executors::ISingleThreadExecutor::~ISingleThreadExecutor
~ISingleThreadExecutor() noexcept override=default
Destructor.
i_executor.h
Definition of IExecutor class.
logger.h
Definition of Logger class.
msgpack_rpc::executors
Namespace of executors to process asynchronous tasks.
Definition
asio_context_type.h:24
msgpack_rpc::executors::create_single_thread_executor
std::shared_ptr< ISingleThreadExecutor > create_single_thread_executor(std::shared_ptr< logging::Logger > logger)
Create an executor runs in a single thread.
Definition
single_thread_executor.cpp:71
msgpack_rpc::logging
Namespace of logging.
Definition
i_log_sink.h:27
std
STL namespace.
src
msgpack_rpc
executors
i_single_thread_executor.h
Generated on
for cpp-msgpack-rpc by
1.18.0