1 /* 2 * 3 * Copyright 2015 gRPC authors. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 #ifndef GRPC_CORE_LIB_COMPRESSION_COMPRESSION_ARGS_H 20 #define GRPC_CORE_LIB_COMPRESSION_COMPRESSION_ARGS_H 21 22 #include <grpc/support/port_platform.h> 23 24 #include <grpc/compression.h> 25 #include <grpc/impl/codegen/grpc_types.h> 26 27 /** Returns the compression algorithm set in \a a. */ 28 grpc_compression_algorithm 29 grpc_channel_args_get_channel_default_compression_algorithm( 30 const grpc_channel_args* a); 31 32 /** Returns a channel arg instance with compression enabled. If \a a is 33 * non-NULL, its args are copied. N.B. GRPC_COMPRESS_NONE disables compression 34 * for the channel. */ 35 grpc_channel_args* grpc_channel_args_set_channel_default_compression_algorithm( 36 grpc_channel_args* a, grpc_compression_algorithm algorithm); 37 38 /** Sets the support for the given compression algorithm. By default, all 39 * compression algorithms are enabled. It's an error to disable an algorithm set 40 * by grpc_channel_args_set_compression_algorithm. 41 * 42 * Returns an instance with the updated algorithm states. The \a a pointer is 43 * modified to point to the returned instance (which may be different from the 44 * input value of \a a). */ 45 grpc_channel_args* grpc_channel_args_compression_algorithm_set_state( 46 grpc_channel_args** a, grpc_compression_algorithm algorithm, int state); 47 48 /** Returns the bitset representing the support state (true for enabled, false 49 * for disabled) for compression algorithms. 50 * 51 * The i-th bit of the returned bitset corresponds to the i-th entry in the 52 * grpc_compression_algorithm enum. */ 53 uint32_t grpc_channel_args_compression_algorithm_get_states( 54 const grpc_channel_args* a); 55 56 #endif /* GRPC_CORE_LIB_COMPRESSION_COMPRESSION_ARGS_H */ 57