cpp-msgpack-rpc
0.2.0
An RPC library implementing MessagePack RPC.
Toggle main menu visibility
Loading...
Searching...
No Matches
reconnection_config.cpp
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
#include "
msgpack_rpc/config/reconnection_config.h
"
21
22
#include <chrono>
23
#include <ratio>
24
25
#include "
msgpack_rpc/common/msgpack_rpc_exception.h
"
26
#include "
msgpack_rpc/common/status_code.h
"
27
28
namespace
msgpack_rpc::config
{
29
30
namespace
{
31
32
constexpr
auto
RECONNECTION_CONFIG_DEFAULT_INITIAL_WAITING_TIME =
33
std::chrono::milliseconds(125);
34
35
constexpr
auto
RECONNECTION_CONFIG_DEFAULT_MAX_WAITING_TIME =
36
std::chrono::seconds(32);
37
38
constexpr
auto
RECONNECTION_CONFIG_DEFAULT_MAX_JITTER_WAITING_TIME =
39
RECONNECTION_CONFIG_DEFAULT_INITIAL_WAITING_TIME;
40
41
}
// namespace
42
43
ReconnectionConfig::ReconnectionConfig
()
44
:
initial_waiting_time_
(RECONNECTION_CONFIG_DEFAULT_INITIAL_WAITING_TIME),
45
max_waiting_time_
(RECONNECTION_CONFIG_DEFAULT_MAX_WAITING_TIME),
46
max_jitter_waiting_time_
(
47
RECONNECTION_CONFIG_DEFAULT_MAX_JITTER_WAITING_TIME) {}
48
49
ReconnectionConfig
&
ReconnectionConfig::initial_waiting_time
(
50
std::chrono::nanoseconds value) {
51
if
(value <= std::chrono::nanoseconds(0)) {
52
throw
MsgpackRPCException
(StatusCode::INVALID_ARGUMENT,
53
"Waiting time must be larger than zero."
);
54
}
55
initial_waiting_time_
= value;
56
return
*
this
;
57
}
58
59
std::chrono::nanoseconds
ReconnectionConfig::initial_waiting_time
()
60
const noexcept {
61
return
initial_waiting_time_
;
62
}
63
64
ReconnectionConfig
&
ReconnectionConfig::max_waiting_time
(
65
std::chrono::nanoseconds value) {
66
if
(value <= std::chrono::nanoseconds(0)) {
67
throw
MsgpackRPCException
(StatusCode::INVALID_ARGUMENT,
68
"Waiting time must be larger than zero."
);
69
}
70
max_waiting_time_
= value;
71
return
*
this
;
72
}
73
74
std::chrono::nanoseconds
ReconnectionConfig::max_waiting_time
() const noexcept {
75
return
max_waiting_time_
;
76
}
77
78
ReconnectionConfig
&
ReconnectionConfig::max_jitter_waiting_time
(
79
std::chrono::nanoseconds value) {
80
if
(value < std::chrono::nanoseconds(0)) {
81
throw
MsgpackRPCException
(StatusCode::INVALID_ARGUMENT,
82
"Jitter must be larger than or equal to zero."
);
83
}
84
max_jitter_waiting_time_
= value;
85
return
*
this
;
86
}
87
88
std::chrono::nanoseconds
ReconnectionConfig::max_jitter_waiting_time
()
89
const noexcept {
90
return
max_jitter_waiting_time_
;
91
}
92
93
}
// namespace msgpack_rpc::config
msgpack_rpc::MsgpackRPCException
Class of exceptions in cpp-msgpack-rpc library.
Definition
msgpack_rpc_exception.h:35
msgpack_rpc::config::ReconnectionConfig::initial_waiting_time
std::chrono::nanoseconds initial_waiting_time() const noexcept
Get the initial waiting time.
Definition
reconnection_config.cpp:59
msgpack_rpc::config::ReconnectionConfig::max_waiting_time
std::chrono::nanoseconds max_waiting_time() const noexcept
Get the maximum waiting time.
Definition
reconnection_config.cpp:74
msgpack_rpc::config::ReconnectionConfig::initial_waiting_time_
std::chrono::nanoseconds initial_waiting_time_
Initial waiting time.
Definition
reconnection_config.h:87
msgpack_rpc::config::ReconnectionConfig::max_jitter_waiting_time
std::chrono::nanoseconds max_jitter_waiting_time() const noexcept
Get the maximum jitter of waiting time.
Definition
reconnection_config.cpp:88
msgpack_rpc::config::ReconnectionConfig::ReconnectionConfig
ReconnectionConfig()
Constructor.
Definition
reconnection_config.cpp:43
msgpack_rpc::config::ReconnectionConfig::max_waiting_time_
std::chrono::nanoseconds max_waiting_time_
Maximum waiting time.
Definition
reconnection_config.h:90
msgpack_rpc::config::ReconnectionConfig::max_jitter_waiting_time_
std::chrono::nanoseconds max_jitter_waiting_time_
Maximum jitter of waiting time.
Definition
reconnection_config.h:93
msgpack_rpc_exception.h
Definition of MsgpackRPCException class.
msgpack_rpc::config
Namespace of configurations.
Definition
client_config.h:32
reconnection_config.h
Definition of ReconnectionConfig class.
status_code.h
Definition of StatusCode enumeration.
src
msgpack_rpc
config
reconnection_config.cpp
Generated on
for cpp-msgpack-rpc by
1.18.0