Couchbase C++ SDK
1.4.0 (rev. 59aa900)
Toggle main menu visibility
Loading...
Searching...
No Matches
dns_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 <cstdint>
22
#include <optional>
23
#include <string>
24
25
namespace
couchbase
26
{
27
class
dns_options
28
{
29
public
:
30
static
constexpr
std::chrono::milliseconds
default_timeout
{ 500 };
31
32
auto
timeout
(std::chrono::milliseconds duration) ->
dns_options
&
33
{
34
timeout_ = duration;
35
return
*
this
;
36
}
37
38
auto
nameserver
(std::string hostname, std::uint16_t port = 53) ->
dns_options
&
39
{
40
nameserver_ = hostname;
41
port_ = port;
42
return
*
this
;
43
}
44
45
struct
built
{
46
std::chrono::milliseconds
timeout
;
47
std::optional<std::string>
nameserver
;
48
std::optional<std::uint16_t>
port
;
49
};
50
51
[[nodiscard]]
auto
build
() const ->
built
52
{
53
return
{
54
timeout_,
55
nameserver_,
56
port_,
57
};
58
}
59
60
private
:
61
std::chrono::milliseconds timeout_{
default_timeout
};
62
std::optional<std::string> nameserver_{};
63
std::optional<std::uint16_t> port_{};
64
};
65
}
// namespace couchbase
couchbase::dns_options
Definition
dns_options.hxx:28
couchbase::dns_options::nameserver
auto nameserver(std::string hostname, std::uint16_t port=53) -> dns_options &
Definition
dns_options.hxx:38
couchbase::dns_options::build
auto build() const -> built
Definition
dns_options.hxx:51
couchbase::dns_options::timeout
auto timeout(std::chrono::milliseconds duration) -> dns_options &
Definition
dns_options.hxx:32
couchbase::dns_options::default_timeout
static constexpr std::chrono::milliseconds default_timeout
Definition
dns_options.hxx:30
couchbase
Represents a single item from the result of scan().
Definition
allow_querying_search_index_options.hxx:28
couchbase::dns_options::built
Definition
dns_options.hxx:45
couchbase::dns_options::built::timeout
std::chrono::milliseconds timeout
Definition
dns_options.hxx:46
couchbase::dns_options::built::nameserver
std::optional< std::string > nameserver
Definition
dns_options.hxx:47
couchbase::dns_options::built::port
std::optional< std::uint16_t > port
Definition
dns_options.hxx:48
couchbase
dns_options.hxx
Generated by
1.17.0