Couchbase C++ SDK 1.2.0 (rev. c2439a4)
Loading...
Searching...
No Matches
timeout_options.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright 2020-Present Couchbase, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
20#include <chrono>
21#include <cstddef>
22
23namespace couchbase
24{
26{
27public:
28 static constexpr std::chrono::milliseconds default_analytics_timeout{ std::chrono::seconds{
29 75 } };
30 static constexpr std::chrono::milliseconds default_connect_timeout{ std::chrono::seconds{ 10 } };
31 static constexpr std::chrono::milliseconds default_eventing_timeout{ std::chrono::seconds{ 75 } };
32 static constexpr std::chrono::milliseconds default_key_value_durable_timeout{
33 std::chrono::seconds{ 10 }
34 };
35 static constexpr std::chrono::milliseconds default_key_value_timeout{ 2'500 };
36 static constexpr std::chrono::milliseconds default_key_value_scan_timeout{ std::chrono::seconds{
37 75 } };
38 static constexpr std::chrono::milliseconds default_management_timeout{ std::chrono::seconds{
39 75 } };
40 static constexpr std::chrono::milliseconds default_query_timeout{ std::chrono::seconds{ 75 } };
41 static constexpr std::chrono::milliseconds default_search_timeout{ std::chrono::seconds{ 75 } };
42 static constexpr std::chrono::milliseconds default_view_timeout{ std::chrono::seconds{ 75 } };
43 static constexpr std::chrono::milliseconds default_bootstrap_timeout{ std::chrono::seconds{
44 10 } };
45 static constexpr std::chrono::milliseconds default_resolve_timeout{ std::chrono::seconds{ 2 } };
46
47 auto analytics_timeout(std::chrono::milliseconds timeout) -> timeout_options&
48 {
49 analytics_timeout_ = timeout;
50 return *this;
51 }
52
53 auto connect_timeout(std::chrono::milliseconds timeout) -> timeout_options&
54 {
55 connect_timeout_ = timeout;
56 return *this;
57 }
58
59 auto eventing_timeout(std::chrono::milliseconds timeout) -> timeout_options&
60 {
61 eventing_timeout_ = timeout;
62 return *this;
63 }
64
65 auto key_value_durable_timeout(std::chrono::milliseconds timeout) -> timeout_options&
66 {
67 key_value_durable_timeout_ = timeout;
68 return *this;
69 }
70
71 auto key_value_timeout(std::chrono::milliseconds timeout) -> timeout_options&
72 {
73 key_value_timeout_ = timeout;
74 return *this;
75 }
76
77 auto key_value_scan_timeout(std::chrono::milliseconds timeout) -> timeout_options&
78 {
79 key_value_scan_timeout_ = timeout;
80 return *this;
81 }
82
83 auto management_timeout(std::chrono::milliseconds timeout) -> timeout_options&
84 {
85 management_timeout_ = timeout;
86 return *this;
87 }
88
89 auto query_timeout(std::chrono::milliseconds timeout) -> timeout_options&
90 {
91 query_timeout_ = timeout;
92 return *this;
93 }
94
95 auto search_timeout(std::chrono::milliseconds timeout) -> timeout_options&
96 {
97 search_timeout_ = timeout;
98 return *this;
99 }
100
101 auto view_timeout(std::chrono::milliseconds timeout) -> timeout_options&
102 {
103 view_timeout_ = timeout;
104 return *this;
105 }
106
107 auto bootstrap_timeout(std::chrono::milliseconds timeout) -> timeout_options&
108 {
109 bootstrap_timeout_ = timeout;
110 return *this;
111 }
112
113 auto resolve_timeout(std::chrono::milliseconds timeout) -> timeout_options&
114 {
115 resolve_timeout_ = timeout;
116 return *this;
117 }
118
119 struct built {
120 std::chrono::milliseconds analytics_timeout;
121 std::chrono::milliseconds connect_timeout;
122 std::chrono::milliseconds eventing_timeout;
123 std::chrono::milliseconds key_value_durable_timeout;
124 std::chrono::milliseconds key_value_timeout;
125 std::chrono::milliseconds key_value_scan_timeout;
126 std::chrono::milliseconds management_timeout;
127 std::chrono::milliseconds query_timeout;
128 std::chrono::milliseconds search_timeout;
129 std::chrono::milliseconds view_timeout;
130 std::chrono::milliseconds bootstrap_timeout;
131 std::chrono::milliseconds resolve_timeout;
132 };
133
134 [[nodiscard]] auto build() const -> built
135 {
136 return {
137 analytics_timeout_, connect_timeout_, eventing_timeout_, key_value_durable_timeout_,
138 key_value_timeout_, key_value_scan_timeout_, management_timeout_, query_timeout_,
139 search_timeout_, view_timeout_, bootstrap_timeout_, resolve_timeout_,
140 };
141 }
142
143private:
144 std::chrono::milliseconds analytics_timeout_{ default_analytics_timeout };
145 std::chrono::milliseconds connect_timeout_{ default_connect_timeout };
146 std::chrono::milliseconds eventing_timeout_{ default_eventing_timeout };
147 std::chrono::milliseconds key_value_durable_timeout_{ default_key_value_durable_timeout };
148 std::chrono::milliseconds key_value_timeout_{ default_key_value_timeout };
149 std::chrono::milliseconds key_value_scan_timeout_{ default_key_value_scan_timeout };
150 std::chrono::milliseconds management_timeout_{ default_management_timeout };
151 std::chrono::milliseconds query_timeout_{ default_query_timeout };
152 std::chrono::milliseconds search_timeout_{ default_search_timeout };
153 std::chrono::milliseconds view_timeout_{ default_view_timeout };
154 std::chrono::milliseconds bootstrap_timeout_{ default_bootstrap_timeout };
155 std::chrono::milliseconds resolve_timeout_{ default_resolve_timeout };
156};
157} // namespace couchbase
Definition timeout_options.hxx:26
static constexpr std::chrono::milliseconds default_resolve_timeout
Definition timeout_options.hxx:45
static constexpr std::chrono::milliseconds default_management_timeout
Definition timeout_options.hxx:38
static constexpr std::chrono::milliseconds default_query_timeout
Definition timeout_options.hxx:40
static constexpr std::chrono::milliseconds default_analytics_timeout
Definition timeout_options.hxx:28
auto query_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:89
auto key_value_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:71
auto key_value_durable_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:65
auto bootstrap_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:107
static constexpr std::chrono::milliseconds default_eventing_timeout
Definition timeout_options.hxx:31
static constexpr std::chrono::milliseconds default_bootstrap_timeout
Definition timeout_options.hxx:43
auto resolve_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:113
auto build() const -> built
Definition timeout_options.hxx:134
static constexpr std::chrono::milliseconds default_search_timeout
Definition timeout_options.hxx:41
auto eventing_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:59
auto analytics_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:47
static constexpr std::chrono::milliseconds default_key_value_scan_timeout
Definition timeout_options.hxx:36
auto key_value_scan_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:77
static constexpr std::chrono::milliseconds default_key_value_durable_timeout
Definition timeout_options.hxx:32
auto search_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:95
static constexpr std::chrono::milliseconds default_view_timeout
Definition timeout_options.hxx:42
auto view_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:101
static constexpr std::chrono::milliseconds default_key_value_timeout
Definition timeout_options.hxx:35
static constexpr std::chrono::milliseconds default_connect_timeout
Definition timeout_options.hxx:30
auto management_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:83
auto connect_timeout(std::chrono::milliseconds timeout) -> timeout_options &
Definition timeout_options.hxx:53
Represents a single item from the result of scan()
Definition allow_querying_search_index_options.hxx:28
@ timeout
Definition analytics_status.hxx:34
Definition timeout_options.hxx:119
std::chrono::milliseconds search_timeout
Definition timeout_options.hxx:128
std::chrono::milliseconds view_timeout
Definition timeout_options.hxx:129
std::chrono::milliseconds connect_timeout
Definition timeout_options.hxx:121
std::chrono::milliseconds eventing_timeout
Definition timeout_options.hxx:122
std::chrono::milliseconds query_timeout
Definition timeout_options.hxx:127
std::chrono::milliseconds bootstrap_timeout
Definition timeout_options.hxx:130
std::chrono::milliseconds resolve_timeout
Definition timeout_options.hxx:131
std::chrono::milliseconds key_value_scan_timeout
Definition timeout_options.hxx:125
std::chrono::milliseconds key_value_durable_timeout
Definition timeout_options.hxx:123
std::chrono::milliseconds key_value_timeout
Definition timeout_options.hxx:124
std::chrono::milliseconds management_timeout
Definition timeout_options.hxx:126
std::chrono::milliseconds analytics_timeout
Definition timeout_options.hxx:120