cpp-msgpack-rpc
0.2.0
An RPC library implementing MessagePack RPC.
Toggle main menu visibility
Loading...
Searching...
No Matches
async_invoke.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 <utility>
24
25
#include <asio/io_context.hpp>
// IWYU pragma: export
26
#include <asio/post.hpp>
// IWYU pragma: export
27
28
#include "
msgpack_rpc/executors/i_executor.h
"
29
#include "
msgpack_rpc/executors/operation_type.h
"
30
31
namespace
msgpack_rpc::executors
{
32
41
template
<
typename
Function>
42
void
async_invoke
(
const
std::shared_ptr<IExecutor>& executor,
43
OperationType
type, Function&& function) {
44
asio::post(executor->context(type), std::forward<Function>(function));
45
}
46
47
}
// namespace msgpack_rpc::executors
i_executor.h
Definition of IExecutor class.
msgpack_rpc::executors
Namespace of executors to process asynchronous tasks.
Definition
asio_context_type.h:24
msgpack_rpc::executors::OperationType
OperationType
Enumeration of types of operations.
Definition
operation_type.h:29
msgpack_rpc::executors::async_invoke
void async_invoke(const std::shared_ptr< IExecutor > &executor, OperationType type, Function &&function)
Asynchronously invoke a function.
Definition
async_invoke.h:42
operation_type.h
Definition of OperationType enumeration.
include
msgpack_rpc
executors
async_invoke.h
Generated on
for cpp-msgpack-rpc by
1.18.0