Go to the documentation of this file.
19 #ifndef GRPC_CORE_LIB_CHANNEL_CHANNEL_STACK_H
20 #define GRPC_CORE_LIB_CHANNEL_CHANNEL_STACK_H
205 size_t filter_count);
228 #define GRPC_CALL_STACK_REF(call_stack, reason) \
229 grpc_stream_ref(&(call_stack)->refcount, reason)
230 #define GRPC_CALL_STACK_UNREF(call_stack, reason) \
231 grpc_stream_unref(&(call_stack)->refcount, reason)
232 #define GRPC_CHANNEL_STACK_REF(channel_stack, reason) \
233 grpc_stream_ref(&(channel_stack)->refcount, reason)
234 #define GRPC_CHANNEL_STACK_UNREF(channel_stack, reason) \
235 grpc_stream_unref(&(channel_stack)->refcount, reason)
237 #define GRPC_CALL_STACK_REF(call_stack, reason) \
239 grpc_stream_ref(&(call_stack)->refcount); \
242 #define GRPC_CALL_STACK_UNREF(call_stack, reason) \
244 grpc_stream_unref(&(call_stack)->refcount); \
247 #define GRPC_CHANNEL_STACK_REF(channel_stack, reason) \
249 grpc_stream_ref(&(channel_stack)->refcount); \
252 #define GRPC_CHANNEL_STACK_UNREF(channel_stack, reason) \
254 grpc_stream_unref(&(channel_stack)->refcount); \
290 #define GRPC_CALL_LOG_OP(sev, elem, op) \
292 if (GRPC_TRACE_FLAG_ENABLED(grpc_trace_channel)) { \
293 grpc_call_log_op(sev, elem, op); \
size_t count
Definition: channel_stack.h:191
grpc_channel_element * grpc_channel_stack_element(grpc_channel_stack *stack, size_t i)
const char * name
Definition: channel_stack.h:154
Definition: channel_stack.h:175
grpc_status_code
Definition: status.h:26
void grpc_call_next_op(grpc_call_element *elem, grpc_transport_stream_op_batch *op)
grpc_channel_stack * grpc_channel_stack_from_top_element(grpc_channel_element *elem)
Definition: channel_stack.h:159
Definition: call_combiner.h:49
gpr_timespec latency
Definition: channel_stack.h:79
grpc_call_stats stats
Definition: channel_stack.h:84
grpc_status_code final_status
Definition: channel_stack.h:85
grpc_error * grpc_call_stack_init(grpc_channel_stack *channel_stack, int initial_refs, grpc_iomgr_cb_func destroy, void *destroy_arg, const grpc_call_element_args *elem_args)
void * call_data
Definition: channel_stack.h:170
Definition: channel_stack.h:167
void grpc_call_stack_destroy(grpc_call_stack *stack, const grpc_call_final_info *final_info, grpc_closure *then_schedule_closure)
Definition: channel_stack.h:77
An array of arguments that can be passed around.
Definition: grpc_types.h:132
Transport op: a set of operations to perform on a transport as a whole.
Definition: transport.h:324
grpc_core::CallCombiner * call_combiner
Definition: channel_stack.h:74
int is_last
Definition: channel_stack.h:63
size_t call_stack_size
Definition: channel_stack.h:180
grpc_core::Arena * arena
Definition: channel_stack.h:73
size_t sizeof_channel_data
Definition: channel_stack.h:135
grpc_transport_stream_stats transport_stream_stats
Definition: channel_stack.h:78
void * channel_data
Definition: channel_stack.h:161
const grpc_channel_filter * filter
Definition: channel_stack.h:160
Definition: channel_stack.h:185
const grpc_channel_filter * filter
Definition: channel_stack.h:168
void grpc_call_stack_ignore_set_pollset_or_pollset_set(grpc_call_element *elem, grpc_polling_entity *pollent)
grpc_channel_stack * channel_stack
Definition: channel_stack.h:58
grpc_stream_refcount refcount
Definition: channel_stack.h:190
const grpc_slice & path
Definition: channel_stack.h:70
grpc_core::TraceFlag grpc_trace_channel
A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1].
Definition: slice.h:60
grpc_channel_element * grpc_channel_stack_last_element(grpc_channel_stack *stack)
Definition: polling_entity.h:37
Definition: channel_stack.h:66
size_t sizeof_call_data
Definition: channel_stack.h:110
void grpc_channel_stack_destroy(grpc_channel_stack *stack)
grpc_call_element * grpc_call_stack_element(grpc_call_stack *stack, size_t i)
Definition: channel_stack.h:99
const char * error_string
Definition: channel_stack.h:86
int64_t grpc_millis
Definition: exec_ctx.h:35
@ GRPC_STATUS_OK
Not an error; returned on success.
Definition: status.h:28
const grpc_channel_args * channel_args
Definition: channel_stack.h:59
size_t count
Definition: channel_stack.h:177
Definition: transport.h:128
grpc_call_stack * grpc_call_stack_from_top_element(grpc_call_element *elem)
size_t grpc_channel_stack_size(const grpc_channel_filter **filters, size_t filter_count)
void(* grpc_iomgr_cb_func)(void *arg, grpc_error *error)
gRPC Callback definition.
Definition: closure.h:53
void grpc_call_log_op(const char *file, int line, gpr_log_severity severity, grpc_call_element *elem, grpc_transport_stream_op_batch *op)
grpc_call_context_element * context
Definition: channel_stack.h:69
grpc_call_stack * call_stack
Definition: channel_stack.h:67
void grpc_call_stack_set_pollset_or_pollset_set(grpc_call_stack *call_stack, grpc_polling_entity *pollent)
Definition: transport_impl.h:66
grpc_error * grpc_channel_stack_init(int initial_refs, grpc_iomgr_cb_func destroy, void *destroy_arg, const grpc_channel_filter **filters, size_t filter_count, const grpc_channel_args *args, grpc_transport *optional_transport, const char *name, grpc_channel_stack *stack)
grpc_transport * optional_transport
Transport, iff it is known.
Definition: channel_stack.h:61
Definition: channel_stack.h:57
void grpc_channel_next_get_info(grpc_channel_element *elem, const grpc_channel_info *channel_info)
Information about the call upon completion.
Definition: channel_stack.h:83
Analogous to struct timespec.
Definition: gpr_types.h:47
Definition: error_internal.h:39
grpc_millis deadline
Definition: channel_stack.h:72
const void * server_transport_data
Definition: channel_stack.h:68
gpr_cycle_counter start_time
Definition: channel_stack.h:71
Information requested from the channel.
Definition: grpc_types.h:668
Definition: transport.h:163
A closure over a grpc_iomgr_cb_func.
Definition: closure.h:56
grpc_stream_refcount refcount
Definition: channel_stack.h:176
void * channel_data
Definition: channel_stack.h:169
void grpc_channel_next_op(grpc_channel_element *elem, grpc_transport_op *op)
gpr_log_severity
GPR log API.
Definition: log.h:43
Definition: transport.h:56
int is_first
Definition: channel_stack.h:62