GRPC Core
18.0.0
|
#include <grpc/support/port_platform.h>
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/surface/channel_stack_type.h"
#include "src/core/lib/transport/transport.h"
Go to the source code of this file.
Macros | |
#define | GRPC_CHANNEL_INIT_BUILTIN_PRIORITY 10000 |
Typedefs | |
typedef bool(* | grpc_channel_init_stage) (grpc_channel_stack_builder *builder, void *arg) |
This module provides a way for plugins (and the grpc core library itself) to register mutators for channel stacks. More... | |
Functions | |
void | grpc_channel_init_init (void) |
Global initialization of the system. More... | |
void | grpc_channel_init_register_stage (grpc_channel_stack_type type, int priority, grpc_channel_init_stage stage_fn, void *stage_arg) |
Register one stage of mutators. More... | |
void | grpc_channel_init_finalize (void) |
Finalize registration. More... | |
void | grpc_channel_init_shutdown (void) |
Shutdown the channel init system. More... | |
bool | grpc_channel_init_create_stack (grpc_channel_stack_builder *builder, grpc_channel_stack_type type) |
Construct a channel stack of some sort: see channel_stack.h for details type is the type of channel stack to create prefix_bytes is the number of bytes before the channel stack to allocate args are configuration arguments for the channel stack initial_refs is the initial refcount to give the channel stack destroy and destroy_arg specify how to destroy the channel stack if destroy_arg is NULL, the returned value from this function will be substituted optional_transport is either NULL or a constructed transport object Returns a pointer to the base of the memory allocated (the actual channel stack object will be prefix_bytes past that pointer) More... | |
#define GRPC_CHANNEL_INIT_BUILTIN_PRIORITY 10000 |
typedef bool(* grpc_channel_init_stage) (grpc_channel_stack_builder *builder, void *arg) |
This module provides a way for plugins (and the grpc core library itself) to register mutators for channel stacks.
It also provides a universal entry path to run those mutators to build a channel stack for various subsystems. One stage of mutation: call functions against builder to influence the finally constructed channel stack
bool grpc_channel_init_create_stack | ( | grpc_channel_stack_builder * | builder, |
grpc_channel_stack_type | type | ||
) |
Construct a channel stack of some sort: see channel_stack.h for details type is the type of channel stack to create prefix_bytes is the number of bytes before the channel stack to allocate args are configuration arguments for the channel stack initial_refs is the initial refcount to give the channel stack destroy and destroy_arg specify how to destroy the channel stack if destroy_arg is NULL, the returned value from this function will be substituted optional_transport is either NULL or a constructed transport object Returns a pointer to the base of the memory allocated (the actual channel stack object will be prefix_bytes past that pointer)
void grpc_channel_init_finalize | ( | void | ) |
Finalize registration.
No more calls to grpc_channel_init_register_stage are allowed.
void grpc_channel_init_init | ( | void | ) |
Global initialization of the system.
void grpc_channel_init_register_stage | ( | grpc_channel_stack_type | type, |
int | priority, | ||
grpc_channel_init_stage | stage_fn, | ||
void * | stage_arg | ||
) |
Register one stage of mutators.
Stages are run in priority order (lowest to highest), and then in registration order (in the case of a tie). Stages are registered against one of the pre-determined channel stack types. If the channel stack type is GRPC_CLIENT_SUBCHANNEL, the caller should ensure that subchannels with different filter lists will always have different channel args. This requires setting a channel arg in case the registration function relies on some condition other than channel args to decide whether to add a filter or not.
void grpc_channel_init_shutdown | ( | void | ) |
Shutdown the channel init system.