third_party/abseil-cpp/absl/status/status.cc
Go to the documentation of this file.
1 // Copyright 2019 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 #include "absl/status/status.h"
15 
16 #include <errno.h>
17 
18 #include <cassert>
19 
20 #include "absl/base/internal/raw_logging.h"
21 #include "absl/base/internal/strerror.h"
22 #include "absl/debugging/stacktrace.h"
23 #include "absl/debugging/symbolize.h"
24 #include "absl/status/status_payload_printer.h"
25 #include "absl/strings/escaping.h"
26 #include "absl/strings/str_cat.h"
27 #include "absl/strings/str_format.h"
28 #include "absl/strings/str_split.h"
29 
30 namespace absl {
32 
34  switch (code) {
35  case StatusCode::kOk:
36  return "OK";
38  return "CANCELLED";
40  return "UNKNOWN";
42  return "INVALID_ARGUMENT";
44  return "DEADLINE_EXCEEDED";
46  return "NOT_FOUND";
48  return "ALREADY_EXISTS";
50  return "PERMISSION_DENIED";
52  return "UNAUTHENTICATED";
54  return "RESOURCE_EXHAUSTED";
56  return "FAILED_PRECONDITION";
58  return "ABORTED";
60  return "OUT_OF_RANGE";
62  return "UNIMPLEMENTED";
64  return "INTERNAL";
66  return "UNAVAILABLE";
68  return "DATA_LOSS";
69  default:
70  return "";
71  }
72 }
73 
74 std::ostream& operator<<(std::ostream& os, StatusCode code) {
75  return os << StatusCodeToString(code);
76 }
77 
78 namespace status_internal {
79 
80 static int FindPayloadIndexByUrl(const Payloads* payloads,
82  if (payloads == nullptr) return -1;
83 
84  for (size_t i = 0; i < payloads->size(); ++i) {
85  if ((*payloads)[i].type_url == type_url) return i;
86  }
87 
88  return -1;
89 }
90 
91 // Convert canonical code to a value known to this binary.
94  switch (code) {
112  return code;
113  default:
115  }
116 }
117 } // namespace status_internal
118 
120  absl::string_view type_url) const {
121  const auto* payloads = GetPayloads();
123  if (index != -1) return (*payloads)[index].payload;
124 
125  return absl::nullopt;
126 }
127 
129  if (ok()) return;
130 
131  PrepareToModify();
132 
134  if (!rep->payloads) {
135  rep->payloads = absl::make_unique<status_internal::Payloads>();
136  }
137 
138  int index =
140  if (index != -1) {
141  (*rep->payloads)[index].payload = std::move(payload);
142  return;
143  }
144 
145  rep->payloads->push_back({std::string(type_url), std::move(payload)});
146 }
147 
150  if (index != -1) {
151  PrepareToModify();
153  if (GetPayloads()->empty() && message().empty()) {
154  // Special case: If this can be represented inlined, it MUST be
155  // inlined (EqualsSlow depends on this behavior).
156  StatusCode c = static_cast<StatusCode>(raw_code());
157  Unref(rep_);
158  rep_ = CodeToInlinedRep(c);
159  }
160  return true;
161  }
162 
163  return false;
164 }
165 
167  absl::FunctionRef<void(absl::string_view, const absl::Cord&)> visitor)
168  const {
169  if (auto* payloads = GetPayloads()) {
170  bool in_reverse =
171  payloads->size() > 1 && reinterpret_cast<uintptr_t>(payloads) % 13 > 6;
172 
173  for (size_t index = 0; index < payloads->size(); ++index) {
174  const auto& elem =
175  (*payloads)[in_reverse ? payloads->size() - 1 - index : index];
176 
177 #ifdef NDEBUG
178  visitor(elem.type_url, elem.payload);
179 #else
180  // In debug mode invalidate the type url to prevent users from relying on
181  // this string lifetime.
182 
183  // NOLINTNEXTLINE intentional extra conversion to force temporary.
184  visitor(std::string(elem.type_url), elem.payload);
185 #endif // NDEBUG
186  }
187  }
188 }
189 
191  static union EmptyString {
193  ~EmptyString() {}
194  } empty = {{}};
195  return &empty.str;
196 }
197 
198 #ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
199 constexpr const char Status::kMovedFromString[];
200 #endif
201 
203  static std::string* moved_from_string = new std::string(kMovedFromString);
204  return moved_from_string;
205 }
206 
209  // Fast path: if ref==1, there is no need for a RefCountDec (since
210  // this is the only reference and therefore no other thread is
211  // allowed to be mucking with r).
212  if (r->ref.load(std::memory_order_acquire) == 1 ||
213  r->ref.fetch_sub(1, std::memory_order_acq_rel) - 1 == 0) {
214  delete r;
215  }
216 }
217 
219  : rep_(CodeToInlinedRep(code)) {
220  if (code != absl::StatusCode::kOk && !msg.empty()) {
222  }
223 }
224 
225 int Status::raw_code() const {
226  if (IsInlined(rep_)) {
227  return static_cast<int>(InlinedRepToCode(rep_));
228  }
230  return static_cast<int>(rep->code);
231 }
232 
235 }
236 
238  ABSL_RAW_CHECK(!ok(), "PrepareToModify shouldn't be called on OK status.");
239  if (IsInlined(rep_)) {
241  static_cast<absl::StatusCode>(raw_code()), absl::string_view(),
242  nullptr));
243  return;
244  }
245 
246  uintptr_t rep_i = rep_;
248  if (rep->ref.load(std::memory_order_acquire) != 1) {
249  std::unique_ptr<status_internal::Payloads> payloads;
250  if (rep->payloads) {
251  payloads = absl::make_unique<status_internal::Payloads>(*rep->payloads);
252  }
254  rep->code, message(), std::move(payloads));
255  rep_ = PointerToRep(new_rep);
256  UnrefNonInlined(rep_i);
257  }
258 }
259 
261  if (IsInlined(a.rep_) != IsInlined(b.rep_)) return false;
262  if (a.message() != b.message()) return false;
263  if (a.raw_code() != b.raw_code()) return false;
264  if (a.GetPayloads() == b.GetPayloads()) return true;
265 
266  const status_internal::Payloads no_payloads;
267  const status_internal::Payloads* larger_payloads =
268  a.GetPayloads() ? a.GetPayloads() : &no_payloads;
269  const status_internal::Payloads* smaller_payloads =
270  b.GetPayloads() ? b.GetPayloads() : &no_payloads;
271  if (larger_payloads->size() < smaller_payloads->size()) {
272  std::swap(larger_payloads, smaller_payloads);
273  }
274  if ((larger_payloads->size() - smaller_payloads->size()) > 1) return false;
275  // Payloads can be ordered differently, so we can't just compare payload
276  // vectors.
277  for (const auto& payload : *larger_payloads) {
278 
279  bool found = false;
280  for (const auto& other_payload : *smaller_payloads) {
281  if (payload.type_url == other_payload.type_url) {
282  if (payload.payload != other_payload.payload) {
283  return false;
284  }
285  found = true;
286  break;
287  }
288  }
289  if (!found) return false;
290  }
291  return true;
292 }
293 
297 
298  const bool with_payload = (mode & StatusToStringMode::kWithPayload) ==
300 
301  if (with_payload) {
305  const absl::Cord& payload) {
307  if (printer) result = printer(type_url, payload);
309  &text, " [", type_url, "='",
310  result.has_value() ? *result : absl::CHexEscape(std::string(payload)),
311  "']");
312  });
313  }
314 
315  return text;
316 }
317 
318 std::ostream& operator<<(std::ostream& os, const Status& x) {
319  os << x.ToString(StatusToStringMode::kWithEverything);
320  return os;
321 }
322 
325 }
326 
329 }
330 
333 }
334 
337 }
338 
341 }
342 
345 }
346 
349 }
350 
353 }
354 
357 }
358 
361 }
362 
365 }
366 
369 }
370 
373 }
374 
377 }
378 
381 }
382 
385 }
386 
387 bool IsAborted(const Status& status) {
389 }
390 
393 }
394 
395 bool IsCancelled(const Status& status) {
397 }
398 
399 bool IsDataLoss(const Status& status) {
401 }
402 
405 }
406 
409 }
410 
411 bool IsInternal(const Status& status) {
413 }
414 
417 }
418 
419 bool IsNotFound(const Status& status) {
421 }
422 
423 bool IsOutOfRange(const Status& status) {
425 }
426 
429 }
430 
433 }
434 
437 }
438 
441 }
442 
445 }
446 
447 bool IsUnknown(const Status& status) {
449 }
450 
451 StatusCode ErrnoToStatusCode(int error_number) {
452  switch (error_number) {
453  case 0:
454  return StatusCode::kOk;
455  case EINVAL: // Invalid argument
456  case ENAMETOOLONG: // Filename too long
457  case E2BIG: // Argument list too long
458  case EDESTADDRREQ: // Destination address required
459  case EDOM: // Mathematics argument out of domain of function
460  case EFAULT: // Bad address
461  case EILSEQ: // Illegal byte sequence
462  case ENOPROTOOPT: // Protocol not available
463  case ENOSTR: // Not a STREAM
464  case ENOTSOCK: // Not a socket
465  case ENOTTY: // Inappropriate I/O control operation
466  case EPROTOTYPE: // Protocol wrong type for socket
467  case ESPIPE: // Invalid seek
469  case ETIMEDOUT: // Connection timed out
470  case ETIME: // Timer expired
472  case ENODEV: // No such device
473  case ENOENT: // No such file or directory
474 #ifdef ENOMEDIUM
475  case ENOMEDIUM: // No medium found
476 #endif
477  case ENXIO: // No such device or address
478  case ESRCH: // No such process
479  return StatusCode::kNotFound;
480  case EEXIST: // File exists
481  case EADDRNOTAVAIL: // Address not available
482  case EALREADY: // Connection already in progress
483 #ifdef ENOTUNIQ
484  case ENOTUNIQ: // Name not unique on network
485 #endif
487  case EPERM: // Operation not permitted
488  case EACCES: // Permission denied
489 #ifdef ENOKEY
490  case ENOKEY: // Required key not available
491 #endif
492  case EROFS: // Read only file system
494  case ENOTEMPTY: // Directory not empty
495  case EISDIR: // Is a directory
496  case ENOTDIR: // Not a directory
497  case EADDRINUSE: // Address already in use
498  case EBADF: // Invalid file descriptor
499 #ifdef EBADFD
500  case EBADFD: // File descriptor in bad state
501 #endif
502  case EBUSY: // Device or resource busy
503  case ECHILD: // No child processes
504  case EISCONN: // Socket is connected
505 #ifdef EISNAM
506  case EISNAM: // Is a named type file
507 #endif
508 #ifdef ENOTBLK
509  case ENOTBLK: // Block device required
510 #endif
511  case ENOTCONN: // The socket is not connected
512  case EPIPE: // Broken pipe
513 #ifdef ESHUTDOWN
514  case ESHUTDOWN: // Cannot send after transport endpoint shutdown
515 #endif
516  case ETXTBSY: // Text file busy
517 #ifdef EUNATCH
518  case EUNATCH: // Protocol driver not attached
519 #endif
521  case ENOSPC: // No space left on device
522 #ifdef EDQUOT
523  case EDQUOT: // Disk quota exceeded
524 #endif
525  case EMFILE: // Too many open files
526  case EMLINK: // Too many links
527  case ENFILE: // Too many open files in system
528  case ENOBUFS: // No buffer space available
529  case ENODATA: // No message is available on the STREAM read queue
530  case ENOMEM: // Not enough space
531  case ENOSR: // No STREAM resources
532 #ifdef EUSERS
533  case EUSERS: // Too many users
534 #endif
536 #ifdef ECHRNG
537  case ECHRNG: // Channel number out of range
538 #endif
539  case EFBIG: // File too large
540  case EOVERFLOW: // Value too large to be stored in data type
541  case ERANGE: // Result too large
543 #ifdef ENOPKG
544  case ENOPKG: // Package not installed
545 #endif
546  case ENOSYS: // Function not implemented
547  case ENOTSUP: // Operation not supported
548  case EAFNOSUPPORT: // Address family not supported
549 #ifdef EPFNOSUPPORT
550  case EPFNOSUPPORT: // Protocol family not supported
551 #endif
552  case EPROTONOSUPPORT: // Protocol not supported
553 #ifdef ESOCKTNOSUPPORT
554  case ESOCKTNOSUPPORT: // Socket type not supported
555 #endif
556  case EXDEV: // Improper link
558  case EAGAIN: // Resource temporarily unavailable
559 #ifdef ECOMM
560  case ECOMM: // Communication error on send
561 #endif
562  case ECONNREFUSED: // Connection refused
563  case ECONNABORTED: // Connection aborted
564  case ECONNRESET: // Connection reset
565  case EINTR: // Interrupted function call
566 #ifdef EHOSTDOWN
567  case EHOSTDOWN: // Host is down
568 #endif
569  case EHOSTUNREACH: // Host is unreachable
570  case ENETDOWN: // Network is down
571  case ENETRESET: // Connection aborted by network
572  case ENETUNREACH: // Network unreachable
573  case ENOLCK: // No locks available
574  case ENOLINK: // Link has been severed
575 #ifdef ENONET
576  case ENONET: // Machine is not on the network
577 #endif
579  case EDEADLK: // Resource deadlock avoided
580 #ifdef ESTALE
581  case ESTALE: // Stale file handle
582 #endif
583  return StatusCode::kAborted;
584  case ECANCELED: // Operation cancelled
585  return StatusCode::kCancelled;
586  default:
587  return StatusCode::kUnknown;
588  }
589 }
590 
591 namespace {
592 std::string MessageForErrnoToStatus(int error_number,
594  return absl::StrCat(message, ": ",
595  absl::base_internal::StrError(error_number));
596 }
597 } // namespace
598 
600  return Status(ErrnoToStatusCode(error_number),
601  MessageForErrnoToStatus(error_number, message));
602 }
603 
604 namespace status_internal {
605 
607  const char* prefix) {
608  return new std::string(
609  absl::StrCat(prefix, " (",
611 }
612 
613 } // namespace status_internal
614 
616 } // namespace absl
absl::StatusCode::kDeadlineExceeded
@ kDeadlineExceeded
xds_interop_client.str
str
Definition: xds_interop_client.py:487
absl::InvalidArgumentError
Status InvalidArgumentError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:351
absl::Status::Unref
static void Unref(uintptr_t rep)
Definition: third_party/abseil-cpp/absl/status/status.h:876
ABSL_RAW_CHECK
#define ABSL_RAW_CHECK(condition, message)
Definition: abseil-cpp/absl/base/internal/raw_logging.h:59
_gevent_test_main.result
result
Definition: _gevent_test_main.py:96
absl::Cord
Definition: abseil-cpp/absl/strings/cord.h:150
absl::StatusCode::kResourceExhausted
@ kResourceExhausted
absl::status_internal::GetStatusPayloadPrinter
StatusPayloadPrinter GetStatusPayloadPrinter()
Definition: abseil-cpp/absl/status/status_payload_printer.cc:32
absl::Status::ToStringSlow
std::string ToStringSlow(StatusToStringMode mode) const
Definition: third_party/abseil-cpp/absl/status/status.cc:294
absl::StrAppend
void StrAppend(std::string *dest, const AlphaNum &a)
Definition: abseil-cpp/absl/strings/str_cat.cc:193
absl::Status::ToString
std::string ToString(StatusToStringMode mode=StatusToStringMode::kDefault) const
Definition: third_party/abseil-cpp/absl/status/status.h:821
absl::AbortedError
Status AbortedError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:323
absl::StrCat
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
Definition: abseil-cpp/absl/strings/str_cat.cc:98
absl::StatusCode::kFailedPrecondition
@ kFailedPrecondition
absl::IsDeadlineExceeded
bool IsDeadlineExceeded(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:403
absl::IsUnavailable
bool IsUnavailable(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:439
absl::Status::raw_code
int raw_code() const
Definition: third_party/abseil-cpp/absl/status/status.cc:225
begin
char * begin
Definition: abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1007
absl::ErrnoToStatus
Status ErrnoToStatus(int error_number, absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:599
absl::operator<<
ABSL_NAMESPACE_BEGIN std::ostream & operator<<(std::ostream &os, absl::LogSeverity s)
Definition: abseil-cpp/absl/base/log_severity.cc:24
absl::IsInternal
bool IsInternal(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:411
absl::CancelledError
Status CancelledError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:331
absl::IsOutOfRange
bool IsOutOfRange(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:423
absl::StatusCodeToString
ABSL_NAMESPACE_BEGIN std::string StatusCodeToString(StatusCode code)
Definition: third_party/abseil-cpp/absl/status/status.cc:33
absl::Status::EqualsSlow
static bool EqualsSlow(const absl::Status &a, const absl::Status &b)
Definition: third_party/abseil-cpp/absl/status/status.cc:260
absl::StatusCode::kUnimplemented
@ kUnimplemented
absl::string_view
Definition: abseil-cpp/absl/strings/string_view.h:167
elem
Timer elem
Definition: event_engine/iomgr_event_engine/timer_heap_test.cc:109
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
absl::StatusCode::kAborted
@ kAborted
status
absl::Status status
Definition: rls.cc:251
mode
const char int mode
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:135
absl::Status::ErasePayload
bool ErasePayload(absl::string_view type_url)
Definition: third_party/abseil-cpp/absl/status/status.cc:148
a
int a
Definition: abseil-cpp/absl/container/internal/hash_policy_traits_test.cc:88
absl::InternalError
Status InternalError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:347
absl::IsDataLoss
bool IsDataLoss(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:399
absl::Status::GetPayloads
const status_internal::Payloads * GetPayloads() const
Definition: third_party/abseil-cpp/absl/status/status.h:834
ABSL_NAMESPACE_END
#define ABSL_NAMESPACE_END
Definition: third_party/abseil-cpp/absl/base/config.h:171
absl::status_internal::MapToLocalCode
absl::StatusCode MapToLocalCode(int value)
Definition: third_party/abseil-cpp/absl/status/status.cc:92
message
char * message
Definition: libuv/docs/code/tty-gravity/main.c:12
absl::StatusCode::kPermissionDenied
@ kPermissionDenied
absl::StatusCode::kDataLoss
@ kDataLoss
grpc_status._async.code
code
Definition: grpcio_status/grpc_status/_async.py:34
absl::InlinedVector::erase
iterator erase(const_iterator pos)
Definition: abseil-cpp/absl/container/inlined_vector.h:706
absl::PermissionDeniedError
Status PermissionDeniedError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:363
absl::StatusCode::kInternal
@ kInternal
absl::UnauthenticatedError
Status UnauthenticatedError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:371
absl::Status::UnrefNonInlined
static void UnrefNonInlined(uintptr_t rep)
Definition: third_party/abseil-cpp/absl/status/status.cc:207
ABSL_NAMESPACE_BEGIN
#define ABSL_NAMESPACE_BEGIN
Definition: third_party/abseil-cpp/absl/base/config.h:170
absl::msg
const char * msg
Definition: abseil-cpp/absl/synchronization/mutex.cc:272
absl::StatusCode::kOutOfRange
@ kOutOfRange
absl::status_internal::MakeCheckFailString
std::string * MakeCheckFailString(const absl::Status *status, const char *prefix)
Definition: third_party/abseil-cpp/absl/status/status.cc:606
gen_server_registered_method_bad_client_test_body.text
def text
Definition: gen_server_registered_method_bad_client_test_body.py:50
absl::move
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
Definition: abseil-cpp/absl/utility/utility.h:221
absl::IsUnknown
bool IsUnknown(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:447
absl::base_internal::StrError
std::string StrError(int errnum)
Definition: abseil-cpp/absl/base/internal/strerror.cc:77
gen_stats_data.found
bool found
Definition: gen_stats_data.py:61
absl::FailedPreconditionError
Status FailedPreconditionError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:343
absl::IsCancelled
bool IsCancelled(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:395
absl::IsUnauthenticated
bool IsUnauthenticated(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:435
absl::UnknownError
Status UnknownError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:383
absl::Status::SetPayload
void SetPayload(absl::string_view type_url, absl::Cord payload)
Definition: third_party/abseil-cpp/absl/status/status.cc:128
absl::Status::message
absl::string_view message() const
Definition: third_party/abseil-cpp/absl/status/status.h:806
absl::status_internal::FindPayloadIndexByUrl
static int FindPayloadIndexByUrl(const Payloads *payloads, absl::string_view type_url)
Definition: third_party/abseil-cpp/absl/status/status.cc:80
absl::optional
Definition: abseil-cpp/absl/types/internal/optional.h:61
absl::Status::kMovedFromString
static constexpr const char kMovedFromString[]
Definition: third_party/abseil-cpp/absl/status/status.h:619
absl::IsNotFound
bool IsNotFound(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:419
std::swap
void swap(Json::Value &a, Json::Value &b)
Specialize std::swap() for Json::Value.
Definition: third_party/bloaty/third_party/protobuf/conformance/third_party/jsoncpp/json.h:1226
absl::DataLossError
Status DataLossError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:335
x
int x
Definition: bloaty/third_party/googletest/googlemock/test/gmock-matchers_test.cc:3610
absl::status_internal::StatusPayloadPrinter
absl::optional< std::string >(*)(absl::string_view, const absl::Cord &) StatusPayloadPrinter
Definition: abseil-cpp/absl/status/status_payload_printer.h:38
absl::StatusToStringMode
StatusToStringMode
Definition: third_party/abseil-cpp/absl/status/status.h:290
absl::IsInvalidArgument
bool IsInvalidArgument(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:415
absl::OutOfRangeError
Status OutOfRangeError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:359
absl::InlinedVector::size
size_type size() const noexcept
Definition: abseil-cpp/absl/container/inlined_vector.h:270
uintptr_t
_W64 unsigned int uintptr_t
Definition: stdint-msvc2008.h:119
absl::StatusCode::kUnauthenticated
@ kUnauthenticated
absl::StatusToStringMode::kWithEverything
@ kWithEverything
b
uint64_t b
Definition: abseil-cpp/absl/container/internal/layout_test.cc:53
absl::CHexEscape
std::string CHexEscape(absl::string_view src)
Definition: abseil-cpp/absl/strings/escaping.cc:860
absl::status_internal::StatusRep
Definition: abseil-cpp/absl/status/internal/status_internal.h:58
google_benchmark.example.empty
def empty(state)
Definition: example.py:31
absl::StatusCode::kInvalidArgument
@ kInvalidArgument
absl::Status::Status
Status()
Definition: third_party/abseil-cpp/absl/status/status.h:758
absl::Status::ForEachPayload
void ForEachPayload(absl::FunctionRef< void(absl::string_view, const absl::Cord &)> visitor) const
Definition: third_party/abseil-cpp/absl/status/status.cc:166
absl::Status::InlinedRepToCode
static absl::StatusCode InlinedRepToCode(uintptr_t rep)
Definition: third_party/abseil-cpp/absl/status/status.h:856
value
const char * value
Definition: hpack_parser_table.cc:165
absl::Status
ABSL_NAMESPACE_BEGIN class ABSL_MUST_USE_RESULT Status
Definition: abseil-cpp/absl/status/internal/status_internal.h:36
absl::StatusCode::kOk
@ kOk
absl::StatusCode::kCancelled
@ kCancelled
absl::ResourceExhaustedError
Status ResourceExhaustedError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:367
absl::StatusCode::kAlreadyExists
@ kAlreadyExists
absl::StatusCode
StatusCode
Definition: third_party/abseil-cpp/absl/status/status.h:92
absl::StatusToStringMode::kWithPayload
@ kWithPayload
absl::IsFailedPrecondition
bool IsFailedPrecondition(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:407
absl::Status::IsInlined
static bool IsInlined(uintptr_t rep)
Definition: third_party/abseil-cpp/absl/status/status.h:842
absl::Status
Definition: third_party/abseil-cpp/absl/status/status.h:424
absl::StatusCode::kUnknown
@ kUnknown
index
int index
Definition: bloaty/third_party/protobuf/php/ext/google/protobuf/protobuf.h:1184
absl::IsResourceExhausted
bool IsResourceExhausted(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:431
fix_build_deps.r
r
Definition: fix_build_deps.py:491
absl::DeadlineExceededError
Status DeadlineExceededError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:339
absl::Status::RepToPointer
static status_internal::StatusRep * RepToPointer(uintptr_t r)
Definition: third_party/abseil-cpp/absl/status/status.h:861
prefix
static const char prefix[]
Definition: head_of_line_blocking.cc:28
rep
const CordRep * rep
Definition: cord_analysis.cc:53
type_url
string * type_url
Definition: bloaty/third_party/protobuf/conformance/conformance_cpp.cc:72
absl::IsUnimplemented
bool IsUnimplemented(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:443
absl::NotFoundError
Status NotFoundError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:355
absl::Status::ok
ABSL_MUST_USE_RESULT bool ok() const
Definition: third_party/abseil-cpp/absl/status/status.h:802
absl::UnavailableError
Status UnavailableError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:375
absl::Status::MovedFromString
static const std::string * MovedFromString()
Definition: third_party/abseil-cpp/absl/status/status.cc:202
absl::Status::EmptyString
static const std::string * EmptyString()
Definition: third_party/abseil-cpp/absl/status/status.cc:190
absl::FunctionRef
Definition: abseil-cpp/absl/functional/function_ref.h:65
absl::Status::GetPayload
absl::optional< absl::Cord > GetPayload(absl::string_view type_url) const
Definition: third_party/abseil-cpp/absl/status/status.cc:119
absl::Status::rep_
uintptr_t rep_
Definition: third_party/abseil-cpp/absl/status/status.h:654
absl::UnimplementedError
Status UnimplementedError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:379
absl::IsPermissionDenied
bool IsPermissionDenied(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:427
absl::Status::CodeToInlinedRep
static uintptr_t CodeToInlinedRep(absl::StatusCode code)
Definition: third_party/abseil-cpp/absl/status/status.h:852
absl::Status::PrepareToModify
void PrepareToModify()
Definition: third_party/abseil-cpp/absl/status/status.cc:237
absl
Definition: abseil-cpp/absl/algorithm/algorithm.h:31
absl::IsAborted
bool IsAborted(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:387
code
Definition: bloaty/third_party/zlib/contrib/infback9/inftree9.h:24
absl::InlinedVector
Definition: abseil-cpp/absl/container/inlined_vector.h:69
absl::StatusCode::kUnavailable
@ kUnavailable
absl::Status::code
absl::StatusCode code() const
Definition: third_party/abseil-cpp/absl/status/status.cc:233
gen_server_registered_method_bad_client_test_body.payload
list payload
Definition: gen_server_registered_method_bad_client_test_body.py:40
absl::IsAlreadyExists
bool IsAlreadyExists(const Status &status)
Definition: third_party/abseil-cpp/absl/status/status.cc:391
errno.h
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
absl::Status::PointerToRep
static uintptr_t PointerToRep(status_internal::StatusRep *r)
Definition: third_party/abseil-cpp/absl/status/status.h:866
absl::AlreadyExistsError
Status AlreadyExistsError(absl::string_view message)
Definition: third_party/abseil-cpp/absl/status/status.cc:327
absl::ErrnoToStatusCode
StatusCode ErrnoToStatusCode(int error_number)
Definition: third_party/abseil-cpp/absl/status/status.cc:451
absl::StatusCode::kNotFound
@ kNotFound


grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:17