#ifndef GRPC_CORE_LIB_CHANNEL_CHANNEL_ARGS_H
#define GRPC_CORE_LIB_CHANNEL_CHANNEL_ARGS_H
#include <grpc/support/port_platform.h>
#include <grpc/compression.h>
#include <grpc/grpc.h>
#include "src/core/lib/iomgr/socket_mutator.h"
grpc_channel_args* grpc_channel_args_copy(const grpc_channel_args* src);
grpc_channel_args* grpc_channel_args_normalize(const grpc_channel_args* src);
grpc_channel_args* grpc_channel_args_copy_and_add(const grpc_channel_args* src,
const grpc_arg* to_add,
size_t num_to_add);
grpc_channel_args* grpc_channel_args_copy_and_remove(
const grpc_channel_args* src, const char** to_remove, size_t num_to_remove);
grpc_channel_args* grpc_channel_args_copy_and_add_and_remove(
const grpc_channel_args* src, const char** to_remove, size_t num_to_remove,
const grpc_arg* to_add, size_t num_to_add);
grpc_channel_args* grpc_channel_args_union(const grpc_channel_args* a,
const grpc_channel_args* b);
void grpc_channel_args_destroy(grpc_channel_args* a);
grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
const grpc_channel_args* a);
grpc_channel_args* grpc_channel_args_set_compression_algorithm(
grpc_channel_args* a, grpc_compression_algorithm algorithm);
grpc_channel_args* grpc_channel_args_compression_algorithm_set_state(
grpc_channel_args** a, grpc_compression_algorithm algorithm, int enabled);
uint32_t grpc_channel_args_compression_algorithm_get_states(
const grpc_channel_args* a);
int grpc_channel_args_compare(const grpc_channel_args* a,
const grpc_channel_args* b);
grpc_channel_args* grpc_channel_args_set_socket_mutator(
grpc_channel_args* a, grpc_socket_mutator* mutator);
const grpc_arg* grpc_channel_args_find(const grpc_channel_args* args,
const char* name);
bool grpc_channel_args_want_minimal_stack(const grpc_channel_args* args);
typedef struct grpc_integer_options {
int default_value; int min_value;
int max_value;
} grpc_integer_options;
int grpc_channel_arg_get_integer(const grpc_arg* arg,
const grpc_integer_options options);
char* grpc_channel_arg_get_string(const grpc_arg* arg);
bool grpc_channel_arg_get_bool(const grpc_arg* arg, bool default_value);
grpc_arg grpc_channel_arg_string_create(char* name, char* value);
grpc_arg grpc_channel_arg_integer_create(char* name, int value);
grpc_arg grpc_channel_arg_pointer_create(char* name, void* value,
const grpc_arg_pointer_vtable* vtable);
char* grpc_channel_args_string(const grpc_channel_args* args);
#endif