|
|
@ -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. |
|
|
|