GRPC C++  1.39.1
Macros | Typedefs | Functions
channel_init.h File Reference
#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...
 

Macro Definition Documentation

◆ GRPC_CHANNEL_INIT_BUILTIN_PRIORITY

#define GRPC_CHANNEL_INIT_BUILTIN_PRIORITY   10000

Typedef Documentation

◆ grpc_channel_init_stage

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

Function Documentation

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

◆ grpc_channel_init_finalize()

void grpc_channel_init_finalize ( void  )

Finalize registration.

No more calls to grpc_channel_init_register_stage are allowed.

◆ grpc_channel_init_init()

void grpc_channel_init_init ( void  )

Global initialization of the system.

◆ grpc_channel_init_register_stage()

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.

◆ grpc_channel_init_shutdown()

void grpc_channel_init_shutdown ( void  )

Shutdown the channel init system.