grpc
third_party
abseil-cpp
absl
base
internal
abseil-cpp/absl/base/internal/errno_saver.h
Go to the documentation of this file.
1
// Copyright 2017 The Abseil Authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef ABSL_BASE_INTERNAL_ERRNO_SAVER_H_
16
#define ABSL_BASE_INTERNAL_ERRNO_SAVER_H_
17
18
#include <cerrno>
19
20
#include "absl/base/config.h"
21
22
namespace
absl
{
23
ABSL_NAMESPACE_BEGIN
24
namespace
base_internal {
25
26
// `ErrnoSaver` captures the value of `errno` upon construction and restores it
27
// upon deletion. It is used in low-level code and must be super fast. Do not
28
// add instrumentation, even in debug modes.
29
class
ErrnoSaver
{
30
public
:
31
ErrnoSaver
() :
saved_errno_
(errno) {}
32
~ErrnoSaver
() { errno =
saved_errno_
; }
33
int
operator()
()
const
{
return
saved_errno_
; }
34
35
private
:
36
const
int
saved_errno_
;
37
};
38
39
}
// namespace base_internal
40
ABSL_NAMESPACE_END
41
}
// namespace absl
42
43
#endif // ABSL_BASE_INTERNAL_ERRNO_SAVER_H_
absl::base_internal::ErrnoSaver::operator()
int operator()() const
Definition:
abseil-cpp/absl/base/internal/errno_saver.h:33
ABSL_NAMESPACE_END
#define ABSL_NAMESPACE_END
Definition:
third_party/abseil-cpp/absl/base/config.h:171
ABSL_NAMESPACE_BEGIN
#define ABSL_NAMESPACE_BEGIN
Definition:
third_party/abseil-cpp/absl/base/config.h:170
absl::base_internal::ErrnoSaver::saved_errno_
const int saved_errno_
Definition:
abseil-cpp/absl/base/internal/errno_saver.h:36
absl::base_internal::ErrnoSaver
Definition:
abseil-cpp/absl/base/internal/errno_saver.h:29
absl::base_internal::ErrnoSaver::~ErrnoSaver
~ErrnoSaver()
Definition:
abseil-cpp/absl/base/internal/errno_saver.h:32
absl
Definition:
abseil-cpp/absl/algorithm/algorithm.h:31
absl::base_internal::ErrnoSaver::ErrnoSaver
ErrnoSaver()
Definition:
abseil-cpp/absl/base/internal/errno_saver.h:31
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:19