19 #ifndef GRPC_CORE_LIB_CHANNEL_CHANNEL_STACK_BUILDER_H 20 #define GRPC_CORE_LIB_CHANNEL_CHANNEL_STACK_BUILDER_H Definition: channel_stack.h:99
Definition: channel_stack.h:175
grpc_channel_stack_builder * grpc_channel_stack_builder_create(void)
Create a new channel stack builder.
const char * grpc_channel_stack_builder_get_target(grpc_channel_stack_builder *b)
An array of arguments that can be passed around.
Definition: grpc_types.h:132
struct grpc_channel_stack_builder_iterator grpc_channel_stack_builder_iterator
Definition: channel_stack_builder.h:32
Definition: error_internal.h:39
bool grpc_channel_stack_builder_add_filter_after(grpc_channel_stack_builder_iterator *iterator, const grpc_channel_filter *filter, grpc_post_filter_create_init_func post_init_func, void *user_data) GRPC_MUST_USE_RESULT
Add filter to the stack, after iterator.
const grpc_channel_args * grpc_channel_stack_builder_get_channel_arguments(grpc_channel_stack_builder *builder)
Return a borrowed pointer to the channel arguments.
struct grpc_resource_user grpc_resource_user
Definition: resource_quota.h:87
grpc_channel_stack_builder_iterator * grpc_channel_stack_builder_create_iterator_at_last(grpc_channel_stack_builder *builder)
Begin iterating over already defined filters in the builder at the end.
bool grpc_channel_stack_builder_iterator_is_end(grpc_channel_stack_builder_iterator *iterator)
Is an iterator at the end?
grpc_channel_stack_builder_iterator * grpc_channel_stack_builder_iterator_find(grpc_channel_stack_builder *builder, const char *filter_name)
Return an iterator at filter_name, or at the end of the list if not found.
bool grpc_channel_stack_builder_move_next(grpc_channel_stack_builder_iterator *iterator)
Move an iterator to the next item.
void grpc_channel_stack_builder_destroy(grpc_channel_stack_builder *builder)
Destroy the builder without creating a channel stack.
grpc_transport * grpc_channel_stack_builder_get_transport(grpc_channel_stack_builder *builder)
Fetch attached transport.
bool grpc_channel_stack_builder_prepend_filter(grpc_channel_stack_builder *builder, const grpc_channel_filter *filter, grpc_post_filter_create_init_func post_init_func, void *user_data) GRPC_MUST_USE_RESULT
Add filter to the beginning of the filter list.
void grpc_channel_stack_builder_set_resource_user(grpc_channel_stack_builder *builder, grpc_resource_user *resource_user)
Attach resource_user to the builder (does not take ownership)
void grpc_channel_stack_builder_set_channel_arguments(grpc_channel_stack_builder *builder, const grpc_channel_args *args)
Set channel arguments: copies args.
void grpc_channel_stack_builder_set_transport(grpc_channel_stack_builder *builder, grpc_transport *transport)
Attach transport to the builder (does not take ownership)
grpc_error * grpc_channel_stack_builder_finish(grpc_channel_stack_builder *builder, size_t prefix_bytes, int initial_refs, grpc_iomgr_cb_func destroy, void *destroy_arg, void **result)
Destroy the builder, return the freshly minted channel stack in result.
struct grpc_channel_stack_builder grpc_channel_stack_builder
grpc_channel_stack_builder offers a programmatic interface to selected and order channel filters ...
Definition: channel_stack_builder.h:31
bool grpc_channel_stack_builder_iterator_is_first(grpc_channel_stack_builder_iterator *iterator)
Is an iterator at the first element?
bool grpc_channel_stack_builder_add_filter_before(grpc_channel_stack_builder_iterator *iterator, const grpc_channel_filter *filter, grpc_post_filter_create_init_func post_init_func, void *user_data) GRPC_MUST_USE_RESULT
Add filter to the stack, before iterator.
void grpc_channel_stack_builder_set_name(grpc_channel_stack_builder *builder, const char *name)
Assign a name to the channel stack: name must be statically allocated.
void(* grpc_post_filter_create_init_func)(grpc_channel_stack *channel_stack, grpc_channel_element *elem, void *arg)
Definition: channel_stack_builder.h:108
void grpc_channel_stack_builder_iterator_destroy(grpc_channel_stack_builder_iterator *iterator)
Terminate iteration and destroy iterator.
Definition: channel_stack.h:159
void(* grpc_iomgr_cb_func)(void *arg, grpc_error *error)
gRPC Callback definition.
Definition: closure.h:53
void grpc_channel_stack_builder_set_target(grpc_channel_stack_builder *b, const char *target)
Set the target uri.
Definition: transport_impl.h:66
bool grpc_channel_stack_builder_append_filter(grpc_channel_stack_builder *builder, const grpc_channel_filter *filter, grpc_post_filter_create_init_func post_init_func, void *user_data) GRPC_MUST_USE_RESULT
Add filter to the end of the filter list.
const char * grpc_channel_stack_builder_iterator_filter_name(grpc_channel_stack_builder_iterator *iterator)
What is the name of the filter at this iterator position?
grpc_resource_user * grpc_channel_stack_builder_get_resource_user(grpc_channel_stack_builder *builder)
Fetch attached resource user.
grpc_channel_stack_builder_iterator * grpc_channel_stack_builder_create_iterator_at_first(grpc_channel_stack_builder *builder)
Begin iterating over already defined filters in the builder at the beginning.
bool grpc_channel_stack_builder_remove_filter(grpc_channel_stack_builder *builder, const char *filter_name)
Remove any filter whose name is filter_name from builder.
bool grpc_channel_stack_builder_move_prev(grpc_channel_stack_builder_iterator *iterator)
Move an iterator to the previous item.