GRPC C++  1.26.0
Typedefs | Functions
channel_stack_builder.h File Reference
#include <grpc/support/port_platform.h>
#include <stdbool.h>
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/channel_stack.h"

Go to the source code of this file.

Typedefs

typedef struct grpc_channel_stack_builder grpc_channel_stack_builder
 grpc_channel_stack_builder offers a programmatic interface to selected and order channel filters More...
 
typedef struct grpc_channel_stack_builder_iterator grpc_channel_stack_builder_iterator
 
typedef void(* grpc_post_filter_create_init_func) (grpc_channel_stack *channel_stack, grpc_channel_element *elem, void *arg)
 

Functions

grpc_channel_stack_buildergrpc_channel_stack_builder_create (void)
 Create a new channel stack builder. More...
 
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. More...
 
void grpc_channel_stack_builder_set_target (grpc_channel_stack_builder *b, const char *target)
 Set the target uri. More...
 
const char * grpc_channel_stack_builder_get_target (grpc_channel_stack_builder *b)
 
void grpc_channel_stack_builder_set_transport (grpc_channel_stack_builder *builder, grpc_transport *transport)
 Attach transport to the builder (does not take ownership) More...
 
grpc_transportgrpc_channel_stack_builder_get_transport (grpc_channel_stack_builder *builder)
 Fetch attached transport. More...
 
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) More...
 
grpc_resource_usergrpc_channel_stack_builder_get_resource_user (grpc_channel_stack_builder *builder)
 Fetch attached resource user. More...
 
void grpc_channel_stack_builder_set_channel_arguments (grpc_channel_stack_builder *builder, const grpc_channel_args *args)
 Set channel arguments: copies args. More...
 
const grpc_channel_argsgrpc_channel_stack_builder_get_channel_arguments (grpc_channel_stack_builder *builder)
 Return a borrowed pointer to the channel arguments. More...
 
grpc_channel_stack_builder_iteratorgrpc_channel_stack_builder_create_iterator_at_first (grpc_channel_stack_builder *builder)
 Begin iterating over already defined filters in the builder at the beginning. More...
 
grpc_channel_stack_builder_iteratorgrpc_channel_stack_builder_create_iterator_at_last (grpc_channel_stack_builder *builder)
 Begin iterating over already defined filters in the builder at the end. More...
 
bool grpc_channel_stack_builder_iterator_is_first (grpc_channel_stack_builder_iterator *iterator)
 Is an iterator at the first element? More...
 
bool grpc_channel_stack_builder_iterator_is_end (grpc_channel_stack_builder_iterator *iterator)
 Is an iterator at the end? More...
 
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? More...
 
bool grpc_channel_stack_builder_move_next (grpc_channel_stack_builder_iterator *iterator)
 Move an iterator to the next item. More...
 
bool grpc_channel_stack_builder_move_prev (grpc_channel_stack_builder_iterator *iterator)
 Move an iterator to the previous item. More...
 
grpc_channel_stack_builder_iteratorgrpc_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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void grpc_channel_stack_builder_iterator_destroy (grpc_channel_stack_builder_iterator *iterator)
 Terminate iteration and destroy iterator. More...
 
grpc_errorgrpc_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. More...
 
void grpc_channel_stack_builder_destroy (grpc_channel_stack_builder *builder)
 Destroy the builder without creating a channel stack. More...
 

Typedef Documentation

◆ grpc_channel_stack_builder

grpc_channel_stack_builder offers a programmatic interface to selected and order channel filters

◆ grpc_channel_stack_builder_iterator

◆ grpc_post_filter_create_init_func

typedef void(* grpc_post_filter_create_init_func) (grpc_channel_stack *channel_stack, grpc_channel_element *elem, void *arg)

Function Documentation

◆ grpc_channel_stack_builder_add_filter_after()

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 
)

Add filter to the stack, after iterator.

Call post_init_func(..., user_data) once the channel stack is created.

◆ grpc_channel_stack_builder_add_filter_before()

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 
)

Add filter to the stack, before iterator.

Call post_init_func(..., user_data) once the channel stack is created.

◆ grpc_channel_stack_builder_append_filter()

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 
)

Add filter to the end of the filter list.

Call post_init_func(..., user_data) once the channel stack is created.

◆ grpc_channel_stack_builder_create()

grpc_channel_stack_builder* grpc_channel_stack_builder_create ( void  )

Create a new channel stack builder.

◆ grpc_channel_stack_builder_create_iterator_at_first()

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.

◆ grpc_channel_stack_builder_create_iterator_at_last()

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.

◆ grpc_channel_stack_builder_destroy()

void grpc_channel_stack_builder_destroy ( grpc_channel_stack_builder builder)

Destroy the builder without creating a channel stack.

◆ grpc_channel_stack_builder_finish()

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.

Allocates prefix_bytes bytes before the channel stack Returns the base pointer of the allocated block initial_refs, destroy, destroy_arg are as per grpc_channel_stack_init

◆ grpc_channel_stack_builder_get_channel_arguments()

const grpc_channel_args* grpc_channel_stack_builder_get_channel_arguments ( grpc_channel_stack_builder builder)

Return a borrowed pointer to the channel arguments.

◆ grpc_channel_stack_builder_get_resource_user()

grpc_resource_user* grpc_channel_stack_builder_get_resource_user ( grpc_channel_stack_builder builder)

Fetch attached resource user.

◆ grpc_channel_stack_builder_get_target()

const char* grpc_channel_stack_builder_get_target ( grpc_channel_stack_builder b)

◆ grpc_channel_stack_builder_get_transport()

grpc_transport* grpc_channel_stack_builder_get_transport ( grpc_channel_stack_builder builder)

Fetch attached transport.

◆ grpc_channel_stack_builder_iterator_destroy()

void grpc_channel_stack_builder_iterator_destroy ( grpc_channel_stack_builder_iterator iterator)

Terminate iteration and destroy iterator.

◆ grpc_channel_stack_builder_iterator_filter_name()

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_channel_stack_builder_iterator_find()

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.

◆ grpc_channel_stack_builder_iterator_is_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_is_first()

bool grpc_channel_stack_builder_iterator_is_first ( grpc_channel_stack_builder_iterator iterator)

Is an iterator at the first element?

◆ grpc_channel_stack_builder_move_next()

bool grpc_channel_stack_builder_move_next ( grpc_channel_stack_builder_iterator iterator)

Move an iterator to the next item.

◆ grpc_channel_stack_builder_move_prev()

bool grpc_channel_stack_builder_move_prev ( grpc_channel_stack_builder_iterator iterator)

Move an iterator to the previous item.

◆ grpc_channel_stack_builder_prepend_filter()

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 
)

Add filter to the beginning of the filter list.

Call post_init_func(..., user_data) once the channel stack is created.

◆ grpc_channel_stack_builder_remove_filter()

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.

Returns true if filter_name was not found.

◆ grpc_channel_stack_builder_set_channel_arguments()

void grpc_channel_stack_builder_set_channel_arguments ( grpc_channel_stack_builder builder,
const grpc_channel_args args 
)

Set channel arguments: copies args.

◆ grpc_channel_stack_builder_set_name()

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.

◆ grpc_channel_stack_builder_set_resource_user()

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)

◆ grpc_channel_stack_builder_set_target()

void grpc_channel_stack_builder_set_target ( grpc_channel_stack_builder b,
const char *  target 
)

Set the target uri.

◆ grpc_channel_stack_builder_set_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)