@ -106,58 +106,66 @@ typedef struct {
by grpc_arg ; keys are strings to allow easy backwards - compatible extension
by grpc_arg ; keys are strings to allow easy backwards - compatible extension
by arbitrary parties .
by arbitrary parties .
All evaluation is performed at channel creation time ( i . e . the values in
All evaluation is performed at channel creation time ( i . e . the values in
this structure need only live through the creation invocation ) . */
this structure need only live through the creation invocation ) .
See the description of the \ ref grpc_arg_keys " available args " for more
details . */
typedef struct {
typedef struct {
size_t num_args ;
size_t num_args ;
grpc_arg * args ;
grpc_arg * args ;
} grpc_channel_args ;
} grpc_channel_args ;
/* Channel argument keys: */
/** \defgroup grpc_arg_keys
/** Enable census for tracing and stats collection */
* Channel argument keys .
* \ {
*/
/** If non-zero, enable census for tracing and stats collection. */
# define GRPC_ARG_ENABLE_CENSUS "grpc.census"
# define GRPC_ARG_ENABLE_CENSUS "grpc.census"
/** Enable load reporting */
/** If non-zero, enable load reporting. */
# define GRPC_ARG_ENABLE_LOAD_REPORTING "grpc.loadreporting"
# define GRPC_ARG_ENABLE_LOAD_REPORTING "grpc.loadreporting"
/** Maximum number of concurrent incoming streams to allow on a http2
/** Maximum number of concurrent incoming streams to allow on a http2
connection */
connection . Int valued . */
# define GRPC_ARG_MAX_CONCURRENT_STREAMS "grpc.max_concurrent_streams"
# define GRPC_ARG_MAX_CONCURRENT_STREAMS "grpc.max_concurrent_streams"
/** Maximum message length that the channel can receive */
/** Maximum message length that the channel can receive. Int valued, bytes. */
# define GRPC_ARG_MAX_MESSAGE_LENGTH "grpc.max_message_length"
# define GRPC_ARG_MAX_MESSAGE_LENGTH "grpc.max_message_length"
/** Initial sequence number for http2 transports */
/** Initial sequence number for http2 transports. Int valued. */
# define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \
# define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \
" grpc.http2.initial_sequence_number "
" grpc.http2.initial_sequence_number "
/** Amount to read ahead on individual streams. Defaults to 64kb, larger
/** Amount to read ahead on individual streams. Defaults to 64kb, larger
values can help throughput on high - latency connections .
values can help throughput on high - latency connections .
NOTE : at some point we ' d like to auto - tune this , and this parameter
NOTE : at some point we ' d like to auto - tune this , and this parameter
will become a no - op . */
will become a no - op . Int valued , bytes . */
# define GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES "grpc.http2.lookahead_bytes"
# define GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES "grpc.http2.lookahead_bytes"
/** How much memory to use for hpack decoding */
/** How much memory to use for hpack decoding. Int valued, bytes. */
# define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \
# define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \
" grpc.http2.hpack_table_size.decoder "
" grpc.http2.hpack_table_size.decoder "
/** How much memory to use for hpack encoding */
/** How much memory to use for hpack encoding. Int valued, bytes. */
# define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \
# define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \
" grpc.http2.hpack_table_size.encoder "
" grpc.http2.hpack_table_size.encoder "
/** Default authority to pass if none specified on call construction */
/** Default authority to pass if none specified on call construction. A string.
* */
# define GRPC_ARG_DEFAULT_AUTHORITY "grpc.default_authority"
# define GRPC_ARG_DEFAULT_AUTHORITY "grpc.default_authority"
/** Primary user agent: goes at the start of the user-agent metadata
/** Primary user agent: goes at the start of the user-agent metadata
sent on each request */
sent on each request . A string . */
# define GRPC_ARG_PRIMARY_USER_AGENT_STRING "grpc.primary_user_agent"
# define GRPC_ARG_PRIMARY_USER_AGENT_STRING "grpc.primary_user_agent"
/** Secondary user agent: goes at the end of the user-agent metadata
/** Secondary user agent: goes at the end of the user-agent metadata
sent on each request */
sent on each request . A string . */
# define GRPC_ARG_SECONDARY_USER_AGENT_STRING "grpc.secondary_user_agent"
# define GRPC_ARG_SECONDARY_USER_AGENT_STRING "grpc.secondary_user_agent"
/** The maximum time between subsequent connection attempts, in ms */
/** The maximum time between subsequent connection attempts, in ms */
# define GRPC_ARG_MAX_RECONNECT_BACKOFF_MS "grpc.max_reconnect_backoff_ms"
# define GRPC_ARG_MAX_RECONNECT_BACKOFF_MS "grpc.max_reconnect_backoff_ms"
/* The caller of the secure_channel_create functions may override the target
/* The caller of the secure_channel_create functions may override the target
name used for SSL host name checking using this channel argument which is of
name used for SSL host name checking using this channel argument which is of
type GRPC_ARG_STRING . This * should * be used for testing only .
type \ a GRPC_ARG_STRING . This * should * be used for testing only .
If this argument is not specified , the name used for SSL host name checking
If this argument is not specified , the name used for SSL host name checking
will be the target parameter ( assuming that the secure channel is an SSL
will be the target parameter ( assuming that the secure channel is an SSL
channel ) . If this parameter is specified and the underlying is not an SSL
channel ) . If this parameter is specified and the underlying is not an SSL
channel , it will just be ignored . */
channel , it will just be ignored . */
# define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG "grpc.ssl_target_name_override"
# define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG "grpc.ssl_target_name_override"
/* Maximum metadata size */
/* Maximum metadata size, in bytes. */
# define GRPC_ARG_MAX_METADATA_SIZE "grpc.max_metadata_size"
# define GRPC_ARG_MAX_METADATA_SIZE "grpc.max_metadata_size"
/** If non-zero, allow the use of SO_REUSEPORT if it's available (default 1) */
/** If non-zero, allow the use of SO_REUSEPORT if it's available (default 1) */
# define GRPC_ARG_ALLOW_REUSEPORT "grpc.so_reuseport"
# define GRPC_ARG_ALLOW_REUSEPORT "grpc.so_reuseport"
/** \} */
/** Result of a grpc call. If the caller satisfies the prerequisites of a
/** Result of a grpc call. If the caller satisfies the prerequisites of a
particular operation , the grpc_call_error returned will be GRPC_CALL_OK .
particular operation , the grpc_call_error returned will be GRPC_CALL_OK .