timeout_encoding.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2015 gRPC authors.
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 
19 #ifndef GRPC_CORE_LIB_TRANSPORT_TIMEOUT_ENCODING_H
20 #define GRPC_CORE_LIB_TRANSPORT_TIMEOUT_ENCODING_H
21 
23 
24 #include <stdint.h>
25 
26 #include "absl/types/optional.h"
27 
30 
31 namespace grpc_core {
32 
33 class Timeout {
34  public:
35  static Timeout FromDuration(Duration duration);
36 
37  // Computes: 100 * ((this - other) / other)
38  double RatioVersus(Timeout other) const;
39  Slice Encode() const;
40  Duration AsDuration() const;
41 
42  private:
43  enum class Unit : uint8_t {
48  kSeconds,
51  kMinutes,
54  kHours,
55  };
56 
57  Timeout(uint16_t value, Unit unit) : value_(value), unit_(unit) {}
58 
59  static Timeout FromMillis(int64_t millis);
61  static Timeout FromMinutes(int64_t minutes);
62  static Timeout FromHours(int64_t hours);
63 
66 };
67 
69 
70 } // namespace grpc_core
71 
72 #endif /* GRPC_CORE_LIB_TRANSPORT_TIMEOUT_ENCODING_H */
slice.h
absl::time_internal::cctz::seconds
std::chrono::duration< std::int_fast64_t > seconds
Definition: abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h:40
grpc_core::Timeout::Unit::kHundredSeconds
@ kHundredSeconds
grpc_core::ParseTimeout
absl::optional< Duration > ParseTimeout(const Slice &text)
Definition: timeout_encoding.cc:228
grpc_core::Timeout::Unit::kTenMinutes
@ kTenMinutes
uint16_t
unsigned short uint16_t
Definition: stdint-msvc2008.h:79
grpc_core::Timeout::Unit::kHundredMilliseconds
@ kHundredMilliseconds
grpc_core::Timeout::value_
uint16_t value_
Definition: timeout_encoding.h:64
grpc_core
Definition: call_metric_recorder.h:31
grpc_core::Timeout::Unit::kHundredMinutes
@ kHundredMinutes
grpc_core::Slice
Definition: src/core/lib/slice/slice.h:282
grpc_core::Timeout::Unit::kSeconds
@ kSeconds
grpc_core::Timeout::Encode
Slice Encode() const
Definition: timeout_encoding.cc:91
grpc_core::Timeout::FromMinutes
static Timeout FromMinutes(int64_t minutes)
Definition: timeout_encoding.cc:200
uint8_t
unsigned char uint8_t
Definition: stdint-msvc2008.h:78
grpc_core::Timeout::Unit::kTenSeconds
@ kTenSeconds
grpc_core::Timeout::FromHours
static Timeout FromHours(int64_t hours)
Definition: timeout_encoding.cc:220
grpc_core::Timeout::FromDuration
static Timeout FromDuration(Duration duration)
Definition: timeout_encoding.cc:47
grpc_core::Timeout
Definition: timeout_encoding.h:33
grpc_core::Timeout::Unit::kMilliseconds
@ kMilliseconds
gen_server_registered_method_bad_client_test_body.text
def text
Definition: gen_server_registered_method_bad_client_test_body.py:50
int64_t
signed __int64 int64_t
Definition: stdint-msvc2008.h:89
grpc_core::Timeout::Unit::kNanoseconds
@ kNanoseconds
grpc_core::Timeout::Timeout
Timeout(uint16_t value, Unit unit)
Definition: timeout_encoding.h:57
grpc_core::Timeout::Unit::kTenMilliseconds
@ kTenMilliseconds
absl::optional
Definition: abseil-cpp/absl/types/internal/optional.h:61
time.h
stdint.h
value
const char * value
Definition: hpack_parser_table.cc:165
grpc_core::Timeout::Unit::kMinutes
@ kMinutes
grpc_core::Timeout::FromMillis
static Timeout FromMillis(int64_t millis)
Definition: timeout_encoding.cc:165
grpc_core::Timeout::AsDuration
Duration AsDuration() const
Definition: timeout_encoding.cc:62
grpc_core::Timeout::Unit::kHours
@ kHours
grpc_core::Timeout::FromSeconds
static Timeout FromSeconds(int64_t seconds)
Definition: timeout_encoding.cc:180
grpc_core::Duration
Definition: src/core/lib/gprpp/time.h:122
grpc_core::Timeout::unit_
Unit unit_
Definition: timeout_encoding.h:65
grpc_core::Timeout::Unit
Unit
Definition: timeout_encoding.h:43
grpc_core::Timeout::RatioVersus
double RatioVersus(Timeout other) const
Definition: timeout_encoding.cc:51
port_platform.h


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:39