Couchbase C++ SDK
1.4.0 (rev. 59aa900)
Toggle main menu visibility
Loading...
Searching...
No Matches
metrics_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 <
couchbase/metrics/meter.hxx
>
21
22
#include <chrono>
23
#include <cstddef>
24
#include <memory>
25
26
namespace
couchbase
27
{
28
class
metrics_options
29
{
30
public
:
31
static
constexpr
std::chrono::milliseconds
default_emit_interval
{ std::chrono::minutes{ 10 } };
32
33
auto
enable
(
bool
enable
) ->
metrics_options
&
34
{
35
enabled_ =
enable
;
36
return
*
this
;
37
}
38
39
auto
emit_interval
(std::chrono::milliseconds interval) ->
metrics_options
&
40
{
41
emit_interval_ = interval;
42
return
*
this
;
43
}
44
45
auto
meter
(std::shared_ptr<metrics::meter> custom_meter) ->
metrics_options
&
46
{
47
meter_ = std::move(custom_meter);
48
return
*
this
;
49
}
50
51
struct
built
{
52
bool
enabled
;
53
std::chrono::milliseconds
emit_interval
;
54
std::shared_ptr<metrics::meter>
meter
;
55
};
56
57
[[nodiscard]]
auto
build
() const ->
built
58
{
59
return
{
60
enabled_,
61
emit_interval_,
62
meter_,
63
};
64
}
65
66
private
:
67
bool
enabled_{
true
};
68
std::chrono::milliseconds emit_interval_{
default_emit_interval
};
69
std::shared_ptr<metrics::meter> meter_{
nullptr
};
70
};
71
}
// namespace couchbase
couchbase::metrics_options
Definition
metrics_options.hxx:29
couchbase::metrics_options::build
auto build() const -> built
Definition
metrics_options.hxx:57
couchbase::metrics_options::emit_interval
auto emit_interval(std::chrono::milliseconds interval) -> metrics_options &
Definition
metrics_options.hxx:39
couchbase::metrics_options::default_emit_interval
static constexpr std::chrono::milliseconds default_emit_interval
Definition
metrics_options.hxx:31
couchbase::metrics_options::enable
auto enable(bool enable) -> metrics_options &
Definition
metrics_options.hxx:33
couchbase::metrics_options::meter
auto meter(std::shared_ptr< metrics::meter > custom_meter) -> metrics_options &
Definition
metrics_options.hxx:45
meter.hxx
couchbase
Represents a single item from the result of scan().
Definition
allow_querying_search_index_options.hxx:28
couchbase::metrics_options::built
Definition
metrics_options.hxx:51
couchbase::metrics_options::built::meter
std::shared_ptr< metrics::meter > meter
Definition
metrics_options.hxx:54
couchbase::metrics_options::built::enabled
bool enabled
Definition
metrics_options.hxx:52
couchbase::metrics_options::built::emit_interval
std::chrono::milliseconds emit_interval
Definition
metrics_options.hxx:53
couchbase
metrics_options.hxx
Generated by
1.17.0