19 #ifndef GRPC_CORE_LIB_CHANNEL_CHANNEL_STACK_BUILDER_H
20 #define GRPC_CORE_LIB_CHANNEL_CHANNEL_STACK_BUILDER_H
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.
void(* grpc_post_filter_create_init_func)(grpc_channel_stack *channel_stack, grpc_channel_element *elem, void *arg)
Definition: channel_stack_builder.h:108
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_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
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.
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_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)
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?
void grpc_channel_stack_builder_set_channel_arguments(grpc_channel_stack_builder *builder, const grpc_channel_args *args)
Set channel arguments: copies args.
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.
void grpc_channel_stack_builder_set_target(grpc_channel_stack_builder *b, const char *target)
Set the target uri.
void grpc_channel_stack_builder_iterator_destroy(grpc_channel_stack_builder_iterator *iterator)
Terminate iteration and destroy iterator.
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.
bool grpc_channel_stack_builder_iterator_is_first(grpc_channel_stack_builder_iterator *iterator)
Is an iterator at the first element?
struct grpc_channel_stack_builder_iterator grpc_channel_stack_builder_iterator
Definition: channel_stack_builder.h:32
bool grpc_channel_stack_builder_move_prev(grpc_channel_stack_builder_iterator *iterator)
Move an iterator to the previous item.
grpc_transport * grpc_channel_stack_builder_get_transport(grpc_channel_stack_builder *builder)
Fetch attached transport.
void grpc_channel_stack_builder_set_transport(grpc_channel_stack_builder *builder, grpc_transport *transport)
Attach transport to the builder (does not take ownership)
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.
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_iterator_is_end(grpc_channel_stack_builder_iterator *iterator)
Is an iterator at the end?
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.
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.
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.
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)
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.
void(* grpc_iomgr_cb_func)(void *arg, grpc_error *error)
gRPC Callback definition.
Definition: closure.h:53
struct grpc_resource_user grpc_resource_user
Definition: resource_quota.h:87
An array of arguments that can be passed around.
Definition: grpc_types.h:132
Definition: channel_stack.h:159
Definition: channel_stack.h:99
Definition: channel_stack.h:175
Definition: error_internal.h:39
Definition: transport_impl.h:66