GRPC Core  39.0.0
grpc_types.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_IMPL_GRPC_TYPES_H
20 #define GRPC_IMPL_GRPC_TYPES_H
21 
22 // IWYU pragma: private, include <grpc/grpc.h>
23 
25 
26 #include <stddef.h>
27 
30 #include <grpc/slice.h>
31 #include <grpc/status.h>
32 #include <grpc/support/time.h>
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 typedef enum {
42 
43 typedef struct grpc_byte_buffer {
44  void* reserved;
47  struct /* internal */ {
48  void* reserved[8];
49  } reserved;
53  } raw;
54  } data;
56 
60 
62 typedef struct grpc_channel grpc_channel;
63 
65 typedef struct grpc_server grpc_server;
66 
70 typedef struct grpc_call grpc_call;
71 
74 
77 
79 typedef enum {
84 
85 typedef struct grpc_arg_pointer_vtable {
86  void* (*copy)(void* p);
87  void (*destroy)(void* p);
88  int (*cmp)(void* p, void* q);
90 
103 typedef struct {
105  char* key;
107  char* string;
108  int integer;
110  void* p;
112  } pointer;
113  } value;
114 } grpc_arg;
115 
132 typedef struct {
133  size_t num_args;
136 
141 typedef enum grpc_call_error {
177 
180 #define GRPC_DEFAULT_MAX_SEND_MESSAGE_LENGTH (-1)
181 #define GRPC_DEFAULT_MAX_RECV_MESSAGE_LENGTH (4 * 1024 * 1024)
182 
187 #define GRPC_WRITE_BUFFER_HINT (0x00000001u)
188 
190 #define GRPC_WRITE_NO_COMPRESS (0x00000002u)
191 
192 #define GRPC_WRITE_THROUGH (0x00000004u)
193 
194 #define GRPC_WRITE_USED_MASK \
195  (GRPC_WRITE_BUFFER_HINT | GRPC_WRITE_NO_COMPRESS | GRPC_WRITE_THROUGH)
196 
200 #define GRPC_INITIAL_METADATA_WAIT_FOR_READY (0x00000020u)
201 
203 #define GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET (0x00000080u)
204 
206 #define GRPC_INITIAL_METADATA_USED_MASK \
207  (GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET | \
208  GRPC_INITIAL_METADATA_WAIT_FOR_READY | GRPC_WRITE_THROUGH)
209 
211 typedef struct grpc_metadata {
216 
220  struct /* internal */ {
221  void* obfuscated[4];
222  } internal_data;
223 } grpc_metadata;
224 
226 typedef enum grpc_completion_type {
234 
238 typedef struct grpc_event {
246  int success;
250  void* tag;
251 } grpc_event;
252 
253 typedef struct {
254  size_t count;
255  size_t capacity;
258 
259 typedef struct {
264 
265 typedef enum {
306 } grpc_op_type;
307 
308 struct grpc_byte_buffer;
309 
312 typedef struct grpc_op {
316  uint32_t flags;
318  void* reserved;
319  union grpc_op_data {
321  struct /* internal */ {
322  void* reserved[8];
323  } reserved;
325  size_t count;
330  uint8_t is_set;
341  } send_message;
366  } recv_message;
379  const char** error_string;
386  int* cancelled;
388  } data;
389 } grpc_op;
390 
392 typedef struct {
400 
402 
412 typedef enum {
416 
421 
428 
430 typedef enum {
433 
436 
440 
451 
455 
460 
461 #define GRPC_CQ_CURRENT_VERSION 2
462 #define GRPC_CQ_VERSION_MINIMUM_FOR_CALLBACKABLE 2
466  int version;
469 
471 
472  /* END OF VERSION 1 CQ ATTRIBUTES */
473 
474  /* START OF VERSION 2 CQ ATTRIBUTES */
478 
479  /* END OF VERSION 2 CQ ATTRIBUTES */
481 
484 
485 #ifdef __cplusplus
486 }
487 #endif
488 
489 #endif /* GRPC_IMPL_GRPC_TYPES_H */
grpc_arg
A single argument...
Definition: grpc_types.h:103
grpc_op::grpc_op_data::grpc_op_send_message::send_message
struct grpc_byte_buffer * send_message
This op takes ownership of the slices in send_message.
Definition: grpc_types.h:340
grpc_op::flags
uint32_t flags
Write flags bitset for grpc_begin_messages.
Definition: grpc_types.h:316
grpc_call_error
grpc_call_error
Result of a grpc call.
Definition: grpc_types.h:141
GRPC_CALL_ERROR_ALREADY_INVOKED
@ GRPC_CALL_ERROR_ALREADY_INVOKED
this method must be called before invoke
Definition: grpc_types.h:153
grpc_metadata_array::metadata
grpc_metadata * metadata
Definition: grpc_types.h:256
grpc_op::grpc_op_data::grpc_op_recv_status_on_client::trailing_metadata
grpc_metadata_array * trailing_metadata
ownership of the array is with the caller, but ownership of the elements stays with the call object (...
Definition: grpc_types.h:373
grpc_completion_type
grpc_completion_type
The type of completion (for grpc_event)
Definition: grpc_types.h:226
grpc_op::grpc_op_data::grpc_op_send_initial_metadata
Definition: grpc_types.h:324
grpc_metadata
struct grpc_metadata grpc_metadata
A single metadata element.
grpc_op::grpc_op_data::grpc_op_recv_status_on_client::status
grpc_status_code * status
Definition: grpc_types.h:374
grpc_arg_type
grpc_arg_type
Type specifier for grpc_arg.
Definition: grpc_types.h:79
GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
@ GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
there is already an outstanding read/write operation on the call
Definition: grpc_types.h:160
GRPC_ARG_INTEGER
@ GRPC_ARG_INTEGER
Definition: grpc_types.h:81
GRPC_CQ_NEXT
@ GRPC_CQ_NEXT
Events are popped out by calling grpc_completion_queue_next() API ONLY.
Definition: grpc_types.h:432
grpc_op::grpc_op_data::grpc_op_send_initial_metadata::grpc_op_send_initial_metadata_maybe_compression_level
If is_set, compression_level will be used for the call.
Definition: grpc_types.h:329
grpc_op::grpc_op_data::grpc_op_send_status_from_server
Definition: grpc_types.h:342
grpc_socket_mutator
struct grpc_socket_mutator grpc_socket_mutator
The Socket Mutator interface allows changes on socket options.
Definition: grpc_types.h:73
grpc_resource_quota
struct grpc_resource_quota grpc_resource_quota
Definition: grpc_types.h:401
GRPC_CALL_ERROR
@ GRPC_CALL_ERROR
something failed, we don't know what
Definition: grpc_types.h:145
GRPC_CALL_ERROR_INVALID_MESSAGE
@ GRPC_CALL_ERROR_INVALID_MESSAGE
invalid message was passed to this call
Definition: grpc_types.h:166
grpc_op::grpc_op_data::grpc_op_send_initial_metadata::grpc_op_send_initial_metadata_maybe_compression_level::level
grpc_compression_level level
Definition: grpc_types.h:331
GRPC_ARG_STRING
@ GRPC_ARG_STRING
Definition: grpc_types.h:80
grpc_cq_polling_type
grpc_cq_polling_type
Completion queues internally MAY maintain a set of file descriptors in a structure called 'pollset'.
Definition: grpc_types.h:412
grpc_op::grpc_op_data::send_initial_metadata
struct grpc_op::grpc_op_data::grpc_op_send_initial_metadata send_initial_metadata
grpc_byte_buffer
struct grpc_byte_buffer grpc_byte_buffer
grpc_completion_queue_functor::internal_success
int internal_success
The following fields are not API.
Definition: grpc_types.h:457
grpc_op
struct grpc_op grpc_op
Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT which has no arguments)
grpc_metadata_array
Definition: grpc_types.h:253
grpc_byte_buffer::grpc_byte_buffer_data::raw
struct grpc_byte_buffer::grpc_byte_buffer_data::grpc_compressed_buffer raw
grpc_call_details
Definition: grpc_types.h:259
grpc_op::reserved
void * reserved
Reserved for future usage.
Definition: grpc_types.h:318
grpc_compression_algorithm
grpc_compression_algorithm
The various compression algorithms supported by gRPC (not sorted by compression level)
Definition: compression_types.h:60
grpc_cq_completion_type
grpc_cq_completion_type
Specifies the type of APIs to use to pop events from the completion queue.
Definition: grpc_types.h:430
GRPC_CALL_ERROR_NOT_ON_CLIENT
@ GRPC_CALL_ERROR_NOT_ON_CLIENT
this method is not available on the client
Definition: grpc_types.h:149
grpc_op::grpc_op_data::grpc_op_send_message
Definition: grpc_types.h:334
grpc_byte_buffer::grpc_byte_buffer_data
Definition: grpc_types.h:46
GRPC_CALL_ERROR_COMPLETION_QUEUE_SHUTDOWN
@ GRPC_CALL_ERROR_COMPLETION_QUEUE_SHUTDOWN
completion queue has been shutdown
Definition: grpc_types.h:175
GRPC_QUEUE_SHUTDOWN
@ GRPC_QUEUE_SHUTDOWN
Shutting down.
Definition: grpc_types.h:228
grpc_byte_buffer::reserved
void * reserved
Definition: grpc_types.h:44
GRPC_OP_COMPLETE
@ GRPC_OP_COMPLETE
Operation completion.
Definition: grpc_types.h:232
GRPC_CALL_OK
@ GRPC_CALL_OK
everything went ok
Definition: grpc_types.h:143
grpc_event
struct grpc_event grpc_event
The result of an operation.
grpc_metadata_array::count
size_t count
Definition: grpc_types.h:254
grpc_call_details::method
grpc_slice method
Definition: grpc_types.h:260
GRPC_CALL_ERROR_INVALID_METADATA
@ GRPC_CALL_ERROR_INVALID_METADATA
invalid metadata was passed to this call
Definition: grpc_types.h:164
GRPC_CALL_ERROR_NOT_ON_SERVER
@ GRPC_CALL_ERROR_NOT_ON_SERVER
this method is not available on the server
Definition: grpc_types.h:147
grpc_metadata_array::capacity
size_t capacity
Definition: grpc_types.h:255
grpc_arg_pointer_vtable
Definition: grpc_types.h:85
grpc_channel_args
An array of arguments that can be passed around.
Definition: grpc_types.h:132
grpc_op::grpc_op_data::recv_message
struct grpc_op::grpc_op_data::grpc_op_recv_message recv_message
GRPC_BB_RAW
@ GRPC_BB_RAW
Future types may include GRPC_BB_PROTOBUF, etc.
Definition: grpc_types.h:39
GRPC_CQ_NON_POLLING
@ GRPC_CQ_NON_POLLING
The completion queue will not have an associated pollset.
Definition: grpc_types.h:426
grpc_op::data
union grpc_op::grpc_op_data data
grpc_metadata::obfuscated
void * obfuscated[4]
Definition: grpc_types.h:221
grpc_op::grpc_op_data::grpc_op_recv_status_on_client
Definition: grpc_types.h:367
grpc_byte_buffer::type
grpc_byte_buffer_type type
Definition: grpc_types.h:45
grpc_completion_queue_functor
struct grpc_completion_queue_functor grpc_completion_queue_functor
Specifies an interface class to be used as a tag for callback-based completion queues.
grpc_op::grpc_op_data::grpc_op_recv_message::recv_message
struct grpc_byte_buffer ** recv_message
Definition: grpc_types.h:365
grpc_metadata
A single metadata element.
Definition: grpc_types.h:211
GRPC_CQ_DEFAULT_POLLING
@ GRPC_CQ_DEFAULT_POLLING
The completion queue will have an associated pollset and there is no restriction on the type of file ...
Definition: grpc_types.h:415
GRPC_OP_RECV_INITIAL_METADATA
@ GRPC_OP_RECV_INITIAL_METADATA
Receive initial metadata: one and only one MUST be made on the client, must not be made on the server...
Definition: grpc_types.h:289
grpc_arg::grpc_arg_value::string
char * string
Definition: grpc_types.h:107
grpc_metadata::internal_data
struct grpc_metadata::@1 internal_data
The following fields are reserved for grpc internal use.
grpc_completion_queue_functor::functor_run
void(* functor_run)(struct grpc_completion_queue_functor *, int)
The run member specifies a function that will be called when this tag is extracted from the completio...
Definition: grpc_types.h:450
GRPC_CALL_ERROR_NOT_INVOKED
@ GRPC_CALL_ERROR_NOT_INVOKED
this method must be called after invoke
Definition: grpc_types.h:155
GRPC_CQ_NON_LISTENING
@ GRPC_CQ_NON_LISTENING
Similar to GRPC_CQ_DEFAULT_POLLING except that the completion queues will not contain any 'listening ...
Definition: grpc_types.h:420
GRPC_OP_SEND_STATUS_FROM_SERVER
@ GRPC_OP_SEND_STATUS_FROM_SERVER
Send status from the server: one and only one instance MUST be sent from the server unless the call w...
Definition: grpc_types.h:284
grpc_arg::grpc_arg_value::grpc_arg_pointer::vtable
const grpc_arg_pointer_vtable * vtable
Definition: grpc_types.h:111
GRPC_CALL_ERROR_INVALID_FLAGS
@ GRPC_CALL_ERROR_INVALID_FLAGS
the flags value was illegal for this call
Definition: grpc_types.h:162
grpc_op::grpc_op_data::grpc_op_send_status_from_server::status
grpc_status_code status
Definition: grpc_types.h:345
grpc_op::grpc_op_data::reserved
void * reserved[8]
Definition: grpc_types.h:322
grpc_arg::grpc_arg_value::grpc_arg_pointer
Definition: grpc_types.h:109
grpc_op::grpc_op_data::grpc_op_recv_status_on_client::error_string
const char ** error_string
If this is not nullptr, it will be populated with the full fidelity error string for debugging purpos...
Definition: grpc_types.h:379
grpc_event
The result of an operation.
Definition: grpc_types.h:238
grpc_status_code
grpc_status_code
Definition: status.h:28
grpc_op_type
grpc_op_type
Definition: grpc_types.h:265
grpc_metadata::value
grpc_slice value
Definition: grpc_types.h:215
grpc_call
struct grpc_call grpc_call
A Call represents an RPC.
Definition: grpc_types.h:70
grpc_byte_buffer
Definition: grpc_types.h:43
grpc_op
Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT which has no arguments)
Definition: grpc_types.h:312
GRPC_OP_SEND_MESSAGE
@ GRPC_OP_SEND_MESSAGE
Send a message: 0 or more of these operations can occur for each call.
Definition: grpc_types.h:274
grpc_channel_args::num_args
size_t num_args
Definition: grpc_types.h:133
grpc_completion_queue_functor::internal_next
struct grpc_completion_queue_functor * internal_next
Definition: grpc_types.h:458
grpc_op::grpc_op_data::grpc_op_recv_close_on_server
Definition: grpc_types.h:381
time.h
grpc_op::grpc_op_data::grpc_op_send_status_from_server::trailing_metadata
grpc_metadata * trailing_metadata
Definition: grpc_types.h:344
grpc_slice
A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1].
Definition: slice_type.h:63
grpc_arg::grpc_arg_value::grpc_arg_pointer::p
void * p
Definition: grpc_types.h:110
grpc_socket_factory
struct grpc_socket_factory grpc_socket_factory
The Socket Factory interface creates and binds sockets.
Definition: grpc_types.h:76
grpc_server
struct grpc_server grpc_server
A server listens to some port and responds to request calls.
Definition: grpc_types.h:65
grpc_op::grpc_op_data::grpc_op_recv_initial_metadata
ownership of the array is with the caller, but ownership of the elements stays with the call object (...
Definition: grpc_types.h:356
grpc_arg_pointer_vtable
struct grpc_arg_pointer_vtable grpc_arg_pointer_vtable
grpc_arg_pointer_vtable::destroy
void(* destroy)(void *p)
Definition: grpc_types.h:87
GRPC_CQ_PLUCK
@ GRPC_CQ_PLUCK
Events are popped out by calling grpc_completion_queue_pluck() API ONLY.
Definition: grpc_types.h:435
grpc_completion_queue_attributes
Definition: grpc_types.h:463
grpc_completion_queue_attributes::version
int version
The version number of this structure.
Definition: grpc_types.h:466
grpc_op::op
grpc_op_type op
Operation type, as defined by grpc_op_type.
Definition: grpc_types.h:314
grpc_op::grpc_op_data::grpc_op_send_initial_metadata::count
size_t count
Definition: grpc_types.h:325
grpc_op::grpc_op_data::grpc_op_recv_status_on_client::status_details
grpc_slice * status_details
Definition: grpc_types.h:375
grpc_byte_buffer::data
union grpc_byte_buffer::grpc_byte_buffer_data data
compression_types.h
grpc_completion_queue_factory
struct grpc_completion_queue_factory grpc_completion_queue_factory
The completion queue factory structure is opaque to the callers of grpc.
Definition: grpc_types.h:483
grpc_op::grpc_op_data::recv_close_on_server
struct grpc_op::grpc_op_data::grpc_op_recv_close_on_server recv_close_on_server
GRPC_OP_RECV_MESSAGE
@ GRPC_OP_RECV_MESSAGE
Receive a message: 0 or more of these operations can occur for each call.
Definition: grpc_types.h:293
GRPC_CALL_ERROR_ALREADY_ACCEPTED
@ GRPC_CALL_ERROR_ALREADY_ACCEPTED
this method must be called before server_accept
Definition: grpc_types.h:151
grpc_completion_queue_attributes::cq_shutdown_cb
grpc_completion_queue_functor * cq_shutdown_cb
When creating a callbackable CQ, pass in a functor to get invoked when shutdown is complete.
Definition: grpc_types.h:477
grpc_channel_info::service_config_json
char ** service_config_json
If non-NULL, will be set to point to a string containing the service config used by the channel in JS...
Definition: grpc_types.h:398
grpc_op::grpc_op_data::send_status_from_server
struct grpc_op::grpc_op_data::grpc_op_send_status_from_server send_status_from_server
GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH
@ GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH
payload type requested is not the type registered
Definition: grpc_types.h:173
grpc_call_details::host
grpc_slice host
Definition: grpc_types.h:261
channel_arg_names.h
GRPC_OP_SEND_INITIAL_METADATA
@ GRPC_OP_SEND_INITIAL_METADATA
Send initial metadata: one and only one instance MUST be sent for each call, unless the call was canc...
Definition: grpc_types.h:270
grpc_channel_info::lb_policy_name
char ** lb_policy_name
If non-NULL, will be set to point to a string indicating the LB policy name.
Definition: grpc_types.h:395
grpc_op::grpc_op_data::send_message
struct grpc_op::grpc_op_data::grpc_op_send_message send_message
grpc_byte_buffer::grpc_byte_buffer_data::grpc_compressed_buffer::compression
grpc_compression_algorithm compression
Definition: grpc_types.h:51
grpc_byte_buffer_type
grpc_byte_buffer_type
Definition: grpc_types.h:38
grpc_op::grpc_op_data::grpc_op_send_initial_metadata::metadata
grpc_metadata * metadata
Definition: grpc_types.h:326
GRPC_CALL_ERROR_BATCH_TOO_BIG
@ GRPC_CALL_ERROR_BATCH_TOO_BIG
this batch of operations leads to more operations than allowed
Definition: grpc_types.h:171
grpc_op::grpc_op_data::recv_status_on_client
struct grpc_op::grpc_op_data::grpc_op_recv_status_on_client recv_status_on_client
grpc_compression_level
grpc_compression_level
Compression levels allow a party with knowledge of its peer's accepted encodings to request compressi...
Definition: compression_types.h:72
grpc_op::grpc_op_data::grpc_op_send_status_from_server::trailing_metadata_count
size_t trailing_metadata_count
Definition: grpc_types.h:343
grpc_op::grpc_op_data::grpc_op_send_initial_metadata::maybe_compression_level
struct grpc_op::grpc_op_data::grpc_op_send_initial_metadata::grpc_op_send_initial_metadata_maybe_compression_level maybe_compression_level
grpc_arg::key
char * key
Definition: grpc_types.h:105
grpc_op::grpc_op_data
Definition: grpc_types.h:319
grpc_byte_buffer::grpc_byte_buffer_data::grpc_compressed_buffer
Definition: grpc_types.h:50
grpc_completion_queue
struct grpc_completion_queue grpc_completion_queue
Completion Queues enable notification of the completion of asynchronous actions.
Definition: grpc_types.h:59
grpc_op::grpc_op_data::grpc_op_recv_message
ownership of the byte buffer is moved to the caller; the caller must call grpc_byte_buffer_destroy on...
Definition: grpc_types.h:364
grpc_completion_queue_functor
Specifies an interface class to be used as a tag for callback-based completion queues.
Definition: grpc_types.h:445
grpc_op::grpc_op_data::grpc_op_send_initial_metadata::grpc_op_send_initial_metadata_maybe_compression_level::is_set
uint8_t is_set
Definition: grpc_types.h:330
grpc_completion_queue_attributes::cq_completion_type
grpc_cq_completion_type cq_completion_type
Set to GRPC_CQ_CURRENT_VERSION.
Definition: grpc_types.h:468
grpc_channel
struct grpc_channel grpc_channel
The Channel interface allows creation of Call objects.
Definition: grpc_types.h:62
grpc_byte_buffer::grpc_byte_buffer_data::grpc_compressed_buffer::slice_buffer
grpc_slice_buffer slice_buffer
Definition: grpc_types.h:52
GRPC_OP_RECV_CLOSE_ON_SERVER
@ GRPC_OP_RECV_CLOSE_ON_SERVER
Receive close on the server: one and only one must be made on the server.
Definition: grpc_types.h:305
grpc_completion_queue_attributes
struct grpc_completion_queue_attributes grpc_completion_queue_attributes
GRPC_CALL_ERROR_ALREADY_FINISHED
@ GRPC_CALL_ERROR_ALREADY_FINISHED
this call is already finished (writes_done or write_status has already been called)
Definition: grpc_types.h:158
grpc_completion_queue_attributes::cq_polling_type
grpc_cq_polling_type cq_polling_type
Definition: grpc_types.h:470
grpc_slice_buffer
Represents an expandable array of slices, to be interpreted as a single item.
Definition: slice_type.h:81
grpc_op::grpc_op_data::recv_initial_metadata
struct grpc_op::grpc_op_data::grpc_op_recv_initial_metadata recv_initial_metadata
GRPC_ARG_POINTER
@ GRPC_ARG_POINTER
Definition: grpc_types.h:82
grpc_op::grpc_op_data::grpc_op_send_status_from_server::status_details
grpc_slice * status_details
optional: set to NULL if no details need sending, non-NULL if they do pointer will not be retained pa...
Definition: grpc_types.h:349
GRPC_CQ_CALLBACK
@ GRPC_CQ_CALLBACK
Events trigger a callback specified as the tag.
Definition: grpc_types.h:438
gpr_timespec
Analogous to struct timespec.
Definition: time.h:48
grpc_event::type
grpc_completion_type type
The type of the completion.
Definition: grpc_types.h:240
grpc_arg::grpc_arg_value::integer
int integer
Definition: grpc_types.h:108
grpc_byte_buffer::grpc_byte_buffer_data::reserved
void * reserved[8]
Definition: grpc_types.h:48
GRPC_OP_RECV_STATUS_ON_CLIENT
@ GRPC_OP_RECV_STATUS_ON_CLIENT
Receive status on the client: one and only one must be made on the client.
Definition: grpc_types.h:299
grpc_op::grpc_op_data::grpc_op_recv_initial_metadata::recv_initial_metadata
grpc_metadata_array * recv_initial_metadata
Definition: grpc_types.h:357
slice.h
grpc_arg::type
grpc_arg_type type
Definition: grpc_types.h:104
grpc_arg_pointer_vtable::cmp
int(* cmp)(void *p, void *q)
Definition: grpc_types.h:88
grpc_channel_info
Information requested from the channel.
Definition: grpc_types.h:392
grpc_channel_args::args
grpc_arg * args
Definition: grpc_types.h:134
grpc_call_details::deadline
gpr_timespec deadline
Definition: grpc_types.h:262
grpc_event::success
int success
If the grpc_completion_type is GRPC_OP_COMPLETE, this field indicates whether the operation was succe...
Definition: grpc_types.h:246
GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE
@ GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE
completion queue for notification has not been registered with the server
Definition: grpc_types.h:169
GRPC_QUEUE_TIMEOUT
@ GRPC_QUEUE_TIMEOUT
No event before timeout.
Definition: grpc_types.h:230
status.h
grpc_event::tag
void * tag
The tag passed to grpc_call_start_batch etc to start this operation.
Definition: grpc_types.h:250
grpc_op::grpc_op_data::grpc_op_recv_close_on_server::cancelled
int * cancelled
out argument, set to 1 if the call failed at the server for a reason other than a non-OK status (canc...
Definition: grpc_types.h:386
grpc_metadata::key
grpc_slice key
the key, value values are expected to line up with grpc_mdelem: if changing them, update metadata....
Definition: grpc_types.h:214
GRPC_OP_SEND_CLOSE_FROM_CLIENT
@ GRPC_OP_SEND_CLOSE_FROM_CLIENT
Send a close from the client: one and only one instance MUST be sent from the client,...
Definition: grpc_types.h:279
grpc_arg::grpc_arg_value
Definition: grpc_types.h:106
grpc_completion_queue_functor::inlineable
int inlineable
The inlineable member specifies whether this functor can be run inline.
Definition: grpc_types.h:454
port_platform.h