cpp-msgpack-rpc 0.2.0
An RPC library implementing MessagePack RPC.
Loading...
Searching...
No Matches
i_client_impl.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
28
30
34class IClientImpl {
35public:
39 virtual void stop() = 0;
40
48 [[nodiscard]] virtual std::shared_ptr<ICallFutureImpl> async_call(
49 messages::MethodNameView method_name,
50 const IParametersSerializer& parameters) = 0;
51
61 virtual void notify(messages::MethodNameView method_name,
62 const IParametersSerializer& parameters) = 0;
63
72 [[nodiscard]] virtual std::shared_ptr<executors::IExecutor> executor() = 0;
73
74 IClientImpl(const IClientImpl&) = delete;
75 IClientImpl(IClientImpl&&) = delete;
76 IClientImpl& operator=(const IClientImpl&) = delete;
77 IClientImpl& operator=(IClientImpl&&) = delete;
78
80 virtual ~IClientImpl() noexcept = default;
81
82protected:
84 IClientImpl() noexcept = default;
85};
86
87} // namespace msgpack_rpc::clients::impl
virtual std::shared_ptr< executors::IExecutor > executor()=0
Get the executor.
virtual void stop()=0
Stop processing of this client.
virtual void notify(messages::MethodNameView method_name, const IParametersSerializer &parameters)=0
Notify to a method.
IClientImpl() noexcept=default
Constructor.
virtual ~IClientImpl() noexcept=default
Destructor.
virtual std::shared_ptr< ICallFutureImpl > async_call(messages::MethodNameView method_name, const IParametersSerializer &parameters)=0
Asynchronously call a method.
Definition of ICallFutureImpl class.
Definition of IExecutor class.
Definition of MethodNameView class.
Namespace of internal implementations.
Definition of ParametersSerializer class.