error.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2016 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_IOMGR_ERROR_H
20 #define GRPC_CORE_LIB_IOMGR_ERROR_H
21 
23 
24 #include <inttypes.h>
25 #include <stdbool.h>
26 
27 #include "absl/status/status.h"
28 
29 #include <grpc/slice.h>
30 #include <grpc/status.h>
31 #include <grpc/support/log.h>
32 #include <grpc/support/time.h>
33 
38 
42 
43 #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
44 
46 
47 #else // GRPC_ERROR_IS_ABSEIL_STATUS
48 
49 typedef struct grpc_error grpc_error;
51 
52 #endif // GRPC_ERROR_IS_ABSEIL_STATUS
53 
54 typedef enum {
71  static_cast<int>(grpc_core::StatusIntProperty::kOffset),
99 
103 
104 typedef enum {
112  static_cast<int>(grpc_core::StatusStrProperty::kOsError),
115  static_cast<int>(grpc_core::StatusStrProperty::kSyscall),
124  static_cast<int>(grpc_core::StatusStrProperty::kRawBytes),
127  static_cast<int>(grpc_core::StatusStrProperty::kTsiError),
130  static_cast<int>(grpc_core::StatusStrProperty::kFilename),
135 
139 
140 typedef enum {
143 
147 
149 
150 // debug only toggles that allow for a sanity to check that ensures we will
151 // never create any errors in the per-RPC hotpath.
154 
155 #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
156 
157 #define GRPC_ERROR_NONE absl::OkStatus()
158 #define GRPC_ERROR_OOM absl::Status(absl::ResourceExhaustedError(""))
159 #define GRPC_ERROR_CANCELLED absl::CancelledError()
160 
161 #define GRPC_ERROR_REF(err) (err)
162 #define GRPC_ERROR_UNREF(err) (void)(err)
163 
164 #define GRPC_ERROR_IS_NONE(err) (err).ok()
165 
166 #define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc) \
167  StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
168 #define GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc) \
169  StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
170 #define GRPC_ERROR_CREATE_FROM_CPP_STRING(desc) \
171  StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
172 #define GRPC_ERROR_CREATE_FROM_STRING_VIEW(desc) \
173  StatusCreate(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, {})
174 
176  const grpc_core::DebugLocation& location,
177  size_t children_count,
179 
180 // Create an error that references some other errors. This function adds a
181 // reference to each error in errs - it does not consume an existing reference
182 #define GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(desc, errs, count) \
183  grpc_status_create(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, count, \
184  errs)
185 #define GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(desc, errs, count) \
186  grpc_status_create(absl::StatusCode::kUnknown, desc, DEBUG_LOCATION, count, \
187  errs)
188 
189 // Consumes all the errors in the vector and forms a referencing error from
190 // them. If the vector is empty, return GRPC_ERROR_NONE.
191 template <typename VectorType>
192 static absl::Status grpc_status_create_from_vector(
194  VectorType* error_list) {
196  if (error_list->size() != 0) {
197  error = grpc_status_create(absl::StatusCode::kUnknown, desc, location,
198  error_list->size(), error_list->data());
199  error_list->clear();
200  }
201  return error;
202 }
203 
204 #define GRPC_ERROR_CREATE_FROM_VECTOR(desc, error_list) \
205  grpc_status_create_from_vector(DEBUG_LOCATION, desc, error_list)
206 #define GRPC_ERROR_CREATE_FROM_VECTOR_AND_CPP_STRING(desc, error_list) \
207  grpc_status_create_from_vector(DEBUG_LOCATION, desc, error_list)
208 
210  const char* call_name) GRPC_MUST_USE_RESULT;
211 
214  return error;
215 }
216 
218 #define GRPC_OS_ERROR(err, call_name) \
219  grpc_assert_never_ok(grpc_os_error(DEBUG_LOCATION, err, call_name))
220 
222  const char* call_name) GRPC_MUST_USE_RESULT;
223 
225 #define GRPC_WSA_ERROR(err, call_name) \
226  grpc_wsa_error(DEBUG_LOCATION, err, call_name)
227 
228 #else // GRPC_ERROR_IS_ABSEIL_STATUS
229 
233 
234 #define GRPC_ERROR_NONE ((grpc_error_handle)NULL)
235 #define GRPC_ERROR_RESERVED_1 ((grpc_error_handle)1)
236 #define GRPC_ERROR_OOM ((grpc_error_handle)2)
237 #define GRPC_ERROR_RESERVED_2 ((grpc_error_handle)3)
238 #define GRPC_ERROR_CANCELLED ((grpc_error_handle)4)
239 #define GRPC_ERROR_SPECIAL_MAX GRPC_ERROR_CANCELLED
240 
241 #define GRPC_ERROR_IS_NONE(err) ((err) == GRPC_ERROR_NONE)
242 
244  return err <= GRPC_ERROR_SPECIAL_MAX;
245 }
246 
247 #ifndef NDEBUG
249  int line);
250 void grpc_error_do_unref(grpc_error_handle err, const char* file, int line);
252  int line) {
253  if (grpc_error_is_special(err)) return err;
254  return grpc_error_do_ref(err, file, line);
255 }
256 inline void grpc_error_unref(grpc_error_handle err, const char* file,
257  int line) {
258  if (grpc_error_is_special(err)) return;
260 }
261 #define GRPC_ERROR_REF(err) grpc_error_ref(err, __FILE__, __LINE__)
262 #define GRPC_ERROR_UNREF(err) grpc_error_unref(err, __FILE__, __LINE__)
263 #else
267  if (grpc_error_is_special(err)) return err;
268  return grpc_error_do_ref(err);
269 }
271  if (grpc_error_is_special(err)) return;
273 }
274 #define GRPC_ERROR_REF(err) grpc_error_ref(err)
275 #define GRPC_ERROR_UNREF(err) grpc_error_unref(err)
276 #endif
277 
280  const grpc_slice& desc,
281  grpc_error_handle* referencing,
282  size_t num_referencing);
291 #define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc) \
292  grpc_error_create(__FILE__, __LINE__, grpc_slice_from_static_string(desc), \
293  NULL, 0)
294 #define GRPC_ERROR_CREATE_FROM_COPIED_STRING(desc) \
295  grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
296  NULL, 0)
297 #define GRPC_ERROR_CREATE_FROM_CPP_STRING(desc) \
298  grpc_error_create(__FILE__, __LINE__, grpc_slice_from_cpp_string(desc), \
299  NULL, 0)
300 #define GRPC_ERROR_CREATE_FROM_STRING_VIEW(desc) \
301  grpc_error_create( \
302  __FILE__, __LINE__, \
303  grpc_slice_from_copied_buffer((desc).data(), (desc).size()), NULL, 0)
304 
305 // Create an error that references some other errors. This function adds a
306 // reference to each error in errs - it does not consume an existing reference
307 #define GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(desc, errs, count) \
308  grpc_error_create(__FILE__, __LINE__, grpc_slice_from_static_string(desc), \
309  errs, count)
310 #define GRPC_ERROR_CREATE_REFERENCING_FROM_COPIED_STRING(desc, errs, count) \
311  grpc_error_create(__FILE__, __LINE__, grpc_slice_from_copied_string(desc), \
312  errs, count)
313 
314 #define GRPC_ERROR_CREATE_FROM_VECTOR(desc, error_list) \
315  grpc_error_create_from_vector( \
316  __FILE__, __LINE__, grpc_slice_from_static_string, desc, error_list)
317 #define GRPC_ERROR_CREATE_FROM_VECTOR_AND_CPP_STRING(desc, error_list) \
318  grpc_error_create_from_vector(__FILE__, __LINE__, \
319  grpc_slice_from_cpp_string, desc, error_list)
320 
321 // Consumes all the errors in the vector and forms a referencing error from
322 // them. If the vector is empty, return GRPC_ERROR_NONE.
323 template <typename VectorType, typename StringType,
324  typename SliceFromStringFunction>
326  const char* file, int line,
327  SliceFromStringFunction slice_from_string_function, StringType desc,
328  VectorType* error_list) {
330  if (error_list->size() != 0) {
332  slice_from_string_function(std::move(desc)),
333  error_list->data(), error_list->size());
334  // Remove refs to all errors in error_list.
335  for (size_t i = 0; i < error_list->size(); i++) {
336  GRPC_ERROR_UNREF((*error_list)[i]);
337  }
338  error_list->clear();
339  }
340  return error;
341 }
342 
343 grpc_error_handle grpc_os_error(const char* file, int line, int err,
344  const char* call_name) GRPC_MUST_USE_RESULT;
345 
348  return error;
349 }
350 
352 #define GRPC_OS_ERROR(err, call_name) \
353  grpc_assert_never_ok(grpc_os_error(__FILE__, __LINE__, err, call_name))
354 grpc_error_handle grpc_wsa_error(const char* file, int line, int err,
355  const char* call_name) GRPC_MUST_USE_RESULT;
357 #define GRPC_WSA_ERROR(err, call_name) \
358  grpc_wsa_error(__FILE__, __LINE__, err, call_name)
359 
360 #endif // GRPC_ERROR_IS_ABSEIL_STATUS
361 
368  intptr_t* p);
374  std::string* str);
375 
389 
390 bool grpc_log_error(const char* what, grpc_error_handle error, const char* file,
391  int line);
392 inline bool grpc_log_if_error(const char* what, grpc_error_handle error,
393  const char* file, int line) {
394  return GRPC_ERROR_IS_NONE(error) ? true
395  : grpc_log_error(what, error, file, line);
396 }
397 
398 #define GRPC_LOG_IF_ERROR(what, error) \
399  (grpc_log_if_error((what), (error), __FILE__, __LINE__))
400 
403 class AtomicError {
404  public:
408  }
411  }
413 
414  AtomicError(const AtomicError&) = delete;
415  AtomicError& operator=(const AtomicError&) = delete;
416 
418  bool ok() {
420  bool ret = GRPC_ERROR_IS_NONE(error_);
422  return ret;
423  }
424 
429  return ret;
430  }
431 
437  }
438 
439  private:
442 };
443 
444 #endif /* GRPC_CORE_LIB_IOMGR_ERROR_H */
trace.h
xds_interop_client.str
str
Definition: xds_interop_client.py:487
GRPC_ERROR_INT_WSA_ERROR
@ GRPC_ERROR_INT_WSA_ERROR
WSAGetLastError() reported when this error occurred.
Definition: error.h:83
grpc_core::StatusIntProperty::kStreamId
@ kStreamId
GRPC_ERROR_STR_SYSCALL
@ GRPC_ERROR_STR_SYSCALL
syscall that generated this error
Definition: error.h:114
grpc_core::StatusIntProperty::kFileLine
@ kFileLine
LINE from the call site creating the error
GRPC_ERROR_NONE
#define GRPC_ERROR_NONE
Definition: error.h:234
log.h
grpc_core::StatusIntProperty::kRpcStatus
@ kRpcStatus
grpc status code representing this error
grpc_core::DebugLocation
Definition: debug_location.h:31
grpc_core::StatusStrProperty::kRawBytes
@ kRawBytes
hex dump (or similar) with the data that generated this error
GRPC_ERROR_STR_FILE
@ GRPC_ERROR_STR_FILE
source file in which this error occurred
Definition: error.h:109
grpc_core::StatusIntProperty::kTsiCode
@ kTsiCode
TSI status code associated with the error.
AtomicError::AtomicError
AtomicError()
Definition: error.h:405
grpc_error_get_str
bool grpc_error_get_str(grpc_error_handle error, grpc_error_strs which, std::string *str)
Returns false if the specified string is not set.
Definition: error.cc:659
grpc_disable_error_creation
void grpc_disable_error_creation()
Definition: error.cc:45
gpr_spinlock
Definition: src/core/lib/gpr/spinlock.h:29
slice.h
GRPC_ERROR_STR_MAX
@ GRPC_ERROR_STR_MAX
Must always be last.
Definition: error.h:137
AtomicError
Definition: error.h:403
AtomicError::get
grpc_error_handle get()
Definition: error.h:425
GRPC_ERROR_INT_LB_POLICY_DROP
@ GRPC_ERROR_INT_LB_POLICY_DROP
LB policy drop.
Definition: error.h:97
grpc_error_times
grpc_error_times
Definition: error.h:140
grpc_core::StatusStrProperty::kFile
@ kFile
source file in which this error occurred
GRPC_ERROR_INT_HTTP2_ERROR
@ GRPC_ERROR_INT_HTTP2_ERROR
http2 error code associated with the error (see the HTTP2 RFC)
Definition: error.h:77
grpc_core::StatusStrProperty::kOsError
@ kOsError
operating system description of this error
GRPC_ERROR_INT_INDEX
@ GRPC_ERROR_INT_INDEX
context sensitive index associated with the error
Definition: error.h:73
grpc_core::StatusIntProperty::kOffset
@ kOffset
GRPC_ERROR_INT_CHANNEL_CONNECTIVITY_STATE
@ GRPC_ERROR_INT_CHANNEL_CONNECTIVITY_STATE
channel connectivity state associated with the error
Definition: error.h:94
absl::string_view
Definition: abseil-cpp/absl/strings/string_view.h:167
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
error
grpc_error_handle error
Definition: retry_filter.cc:499
error_ref_leak.err
err
Definition: error_ref_leak.py:35
file
Definition: bloaty/third_party/zlib/examples/gzappend.c:170
grpc_core::StatusIntProperty::kLbPolicyDrop
@ kLbPolicyDrop
LB policy drop.
grpc_core::StatusStrProperty::kTsiError
@ kTsiError
tsi error string associated with this error
time.h
GRPC_ERROR_INT_FD
@ GRPC_ERROR_INT_FD
File descriptor associated with this error.
Definition: error.h:86
grpc_core::StatusStrProperty::kSyscall
@ kSyscall
syscall that generated this error
GRPC_ERROR_STR_RAW_BYTES
@ GRPC_ERROR_STR_RAW_BYTES
hex dump (or similar) with the data that generated this error
Definition: error.h:123
xds_manager.p
p
Definition: xds_manager.py:60
AtomicError::set
void set(grpc_error_handle error)
Definition: error.h:432
status_helper.h
GRPC_ERROR_STR_DESCRIPTION
@ GRPC_ERROR_STR_DESCRIPTION
top-level textual description of this error
Definition: error.h:106
gpr_spinlock_lock
#define gpr_spinlock_lock(lock)
Definition: src/core/lib/gpr/spinlock.h:49
grpc_error_set_int
grpc_error_handle grpc_error_set_int(grpc_error_handle src, grpc_error_ints which, intptr_t value) GRPC_MUST_USE_RESULT
Definition: error.cc:613
true
#define true
Definition: setup_once.h:324
GRPC_ERROR_INT_TSI_CODE
@ GRPC_ERROR_INT_TSI_CODE
TSI status code associated with the error.
Definition: error.h:80
status.h
GRPC_ERROR_STR_TARGET_ADDRESS
@ GRPC_ERROR_STR_TARGET_ADDRESS
peer that we were trying to communicate when this error occurred
Definition: error.h:117
grpc_error_set_str
grpc_error_handle grpc_error_set_str(grpc_error_handle src, grpc_error_strs which, absl::string_view str) GRPC_MUST_USE_RESULT
Definition: error.cc:650
GRPC_ERROR_TIME_CREATED
@ GRPC_ERROR_TIME_CREATED
timestamp of error creation
Definition: error.h:142
grpc_log_error
bool grpc_log_error(const char *what, grpc_error_handle error, const char *file, int line)
Definition: error.cc:981
absl::move
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
Definition: abseil-cpp/absl/utility/utility.h:221
GPR_ASSERT
#define GPR_ASSERT(x)
Definition: include/grpc/impl/codegen/log.h:94
grpc_enable_error_creation
void grpc_enable_error_creation()
Definition: error.cc:49
grpc_wsa_error
grpc_error_handle grpc_wsa_error(const char *file, int line, int err, const char *call_name) GRPC_MUST_USE_RESULT
AtomicError::error_
grpc_error_handle error_
Definition: error.h:440
grpc_error_unref
void grpc_error_unref(grpc_error_handle err, const char *file, int line)
Definition: error.h:256
GRPC_ERROR_SPECIAL_MAX
#define GRPC_ERROR_SPECIAL_MAX
Definition: error.h:239
grpc_error_add_child
grpc_error_handle grpc_error_add_child(grpc_error_handle src, grpc_error_handle child) GRPC_MUST_USE_RESULT
Definition: error.cc:678
grpc_core::StatusStrProperty::kFilename
@ kFilename
filename that we were trying to read/write when this error occurred
grpc_error_handle
grpc_error * grpc_error_handle
Definition: error.h:50
GRPC_ERROR_INT_SIZE
@ GRPC_ERROR_INT_SIZE
context sensitive size associated with the error
Definition: error.h:75
grpc_error_do_unref
void grpc_error_do_unref(grpc_error_handle err, const char *file, int line)
Definition: error.cc:352
grpc_os_error
grpc_error_handle grpc_os_error(const char *file, int line, int err, const char *call_name) GRPC_MUST_USE_RESULT
Definition: error.cc:948
python_utils.jobset.which
def which(filename)
Definition: jobset.py:157
GRPC_ERROR_INT_STREAM_ID
@ GRPC_ERROR_INT_STREAM_ID
Definition: error.h:63
grpc_core::StatusIntProperty::kWsaError
@ kWsaError
WSAGetLastError() reported when this error occurred.
gpr_spinlock_unlock
#define gpr_spinlock_unlock(lock)
Definition: src/core/lib/gpr/spinlock.h:41
grpc_slice
Definition: include/grpc/impl/codegen/slice.h:65
GRPC_ERROR_STR_GRPC_MESSAGE
@ GRPC_ERROR_STR_GRPC_MESSAGE
grpc status message associated with this error
Definition: error.h:120
googletest-filter-unittest.child
child
Definition: bloaty/third_party/googletest/googletest/test/googletest-filter-unittest.py:62
intptr_t
_W64 signed int intptr_t
Definition: stdint-msvc2008.h:118
google::protobuf.internal::StringType
StringType
Definition: bloaty/third_party/protobuf/src/google/protobuf/generated_message_table_driven_lite.h:53
grpc_core::StatusStrProperty::kDescription
@ kDescription
top-level textual description of this error
slice_internal.h
GRPC_ERROR_INT_MAX
@ GRPC_ERROR_INT_MAX
Must always be last.
Definition: error.h:101
GRPC_ERROR_INT_OFFSET
@ GRPC_ERROR_INT_OFFSET
Definition: error.h:70
grpc_error_ref
grpc_error_handle grpc_error_ref(grpc_error_handle err, const char *file, int line)
Definition: error.h:251
grpc_core::StatusIntProperty::ChannelConnectivityState
@ ChannelConnectivityState
channel connectivity state associated with the error
msg
std::string msg
Definition: client_interceptors_end2end_test.cc:372
grpc_core::StatusStrProperty::kValue
@ kValue
value associated with the error
grpc_error_create
grpc_error_handle grpc_error_create(const char *file, int line, const grpc_slice &desc, grpc_error_handle *referencing, size_t num_referencing)
Create an error - but use GRPC_ERROR_CREATE instead.
Definition: error.cc:489
GRPC_ERROR_STR_FILENAME
@ GRPC_ERROR_STR_FILENAME
filename that we were trying to read/write when this error occurred
Definition: error.h:129
GPR_SPINLOCK_STATIC_INITIALIZER
#define GPR_SPINLOCK_STATIC_INITIALIZER
Definition: src/core/lib/gpr/spinlock.h:37
GRPC_ERROR_STR_OS_ERROR
@ GRPC_ERROR_STR_OS_ERROR
operating system description of this error
Definition: error.h:111
value
const char * value
Definition: hpack_parser_table.cc:165
grpc_error_do_ref
grpc_error_handle grpc_error_do_ref(grpc_error_handle err, const char *file, int line)
Definition: error.cc:303
grpc_core::StatusStrProperty::kGrpcMessage
@ kGrpcMessage
grpc status message associated with this error
GRPC_ERROR_REF
#define GRPC_ERROR_REF(err)
Definition: error.h:261
GRPC_MUST_USE_RESULT
#define GRPC_MUST_USE_RESULT
Definition: impl/codegen/port_platform.h:584
absl::StatusCode
StatusCode
Definition: third_party/abseil-cpp/absl/status/status.h:92
grpc_core::StatusStrProperty::kKey
@ kKey
key associated with the error
grpc_error_get_int
bool grpc_error_get_int(grpc_error_handle error, grpc_error_ints which, intptr_t *p)
Definition: error.cc:635
absl::Status
Definition: third_party/abseil-cpp/absl/status/status.h:424
absl::StatusCode::kUnknown
@ kUnknown
grpc_error_create_from_vector
static grpc_error_handle grpc_error_create_from_vector(const char *file, int line, SliceFromStringFunction slice_from_string_function, StringType desc, VectorType *error_list)
Definition: error.h:325
ret
UniquePtr< SSL_SESSION > ret
Definition: ssl_x509.cc:1029
GRPC_ERROR_TIME_MAX
@ GRPC_ERROR_TIME_MAX
Must always be last.
Definition: error.h:145
GRPC_ERROR_INT_ERRNO
@ GRPC_ERROR_INT_ERRNO
'errno' from the operating system
Definition: error.h:56
grpc_error_std_string
std::string grpc_error_std_string(grpc_error_handle error)
Definition: error.cc:944
grpc_core::StatusIntProperty::kHttpStatus
@ kHttpStatus
HTTP status (i.e. 404)
GRPC_ERROR_STR_TSI_ERROR
@ GRPC_ERROR_STR_TSI_ERROR
tsi error string associated with this error
Definition: error.h:126
regen-readme.line
line
Definition: regen-readme.py:30
AtomicError::lock_
gpr_spinlock lock_
Definition: error.h:441
GRPC_ERROR_STR_VALUE
@ GRPC_ERROR_STR_VALUE
value associated with the error
Definition: error.h:134
desc
#define desc
Definition: bloaty/third_party/protobuf/src/google/protobuf/extension_set.h:338
AtomicError::ok
bool ok()
returns get() == GRPC_ERROR_NONE
Definition: error.h:418
GRPC_ERROR_STR_KEY
@ GRPC_ERROR_STR_KEY
key associated with the error
Definition: error.h:132
grpc_log_if_error
bool grpc_log_if_error(const char *what, grpc_error_handle error, const char *file, int line)
Definition: error.h:392
GRPC_ERROR_UNREF
#define GRPC_ERROR_UNREF(err)
Definition: error.h:262
grpc_error_strs
grpc_error_strs
Definition: error.h:104
grpc_core::StatusIntProperty::kSize
@ kSize
context sensitive size associated with the error
grpc_error_is_special
bool grpc_error_is_special(grpc_error_handle err)
Definition: error.h:243
GRPC_ERROR_INT_FILE_LINE
@ GRPC_ERROR_INT_FILE_LINE
LINE from the call site creating the error
Definition: error.h:59
AtomicError::AtomicError
AtomicError(grpc_error_handle error)
Definition: error.h:409
spinlock.h
grpc_error_ints
grpc_error_ints
Definition: error.h:54
grpc_assert_never_ok
grpc_error_handle grpc_assert_never_ok(grpc_error_handle error)
Definition: error.h:346
GRPC_ERROR_INT_OCCURRED_DURING_WRITE
@ GRPC_ERROR_INT_OCCURRED_DURING_WRITE
chttp2: did the error occur while a write was in progress
Definition: error.h:91
code
Definition: bloaty/third_party/zlib/contrib/infback9/inftree9.h:24
GRPC_ERROR_INT_HTTP_STATUS
@ GRPC_ERROR_INT_HTTP_STATUS
HTTP status (i.e. 404)
Definition: error.h:88
grpc_error
Definition: error_internal.h:42
grpc_core::StatusIntProperty::kOccurredDuringWrite
@ kOccurredDuringWrite
chttp2: did the error occur while a write was in progress
grpc_core::StatusIntProperty::kHttp2Error
@ kHttp2Error
http2 error code associated with the error (see the HTTP2 RFC)
children
std::map< std::string, Node * > children
Definition: bloaty/third_party/protobuf/src/google/protobuf/util/field_mask_util.cc:257
AtomicError::~AtomicError
~AtomicError()
Definition: error.h:412
grpc_core::StatusIntProperty::kFd
@ kFd
File descriptor associated with this error.
grpc_core::StatusIntProperty::kIndex
@ kIndex
context sensitive index associated with the error
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
GRPC_ERROR_INT_GRPC_STATUS
@ GRPC_ERROR_INT_GRPC_STATUS
grpc status code representing this error
Definition: error.h:66
grpc_core::StatusIntProperty::kErrorNo
@ kErrorNo
'errno' from the operating system
AtomicError::operator=
AtomicError & operator=(const AtomicError &)=delete
grpc_core::StatusStrProperty::kTargetAddress
@ kTargetAddress
peer that we were trying to communicate when this error occurred
GRPC_ERROR_IS_NONE
#define GRPC_ERROR_IS_NONE(err)
Definition: error.h:241
port_platform.h


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:15