compression.cc
Go to the documentation of this file.
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 
20 
21 #include <stdint.h>
22 #include <string.h>
23 
24 #include "absl/types/optional.h"
25 
26 #include <grpc/compression.h>
28 #include <grpc/slice.h>
29 
35 
37  return 1;
38 }
39 
41  return 0;
42 }
43 
45  grpc_compression_algorithm* algorithm) {
49  if (alg.has_value()) {
50  *algorithm = alg.value();
51  return 1;
52  }
53  return 0;
54 }
55 
57  const char** name) {
58  GRPC_API_TRACE("grpc_compression_algorithm_name(algorithm=%d, name=%p)", 2,
59  ((int)algorithm, name));
60  const char* result = grpc_core::CompressionAlgorithmAsString(algorithm);
61  if (result != nullptr) {
62  *name = result;
63  return 1;
64  }
65  return 0;
66 }
67 
69  grpc_compression_level level, uint32_t accepted_encodings) {
70  return grpc_core::CompressionAlgorithmSet::FromUint32(accepted_encodings)
72 }
73 
75  memset(opts, 0, sizeof(*opts));
76  /* all enabled by default */
77  opts->enabled_algorithms_bitset = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
78 }
79 
82  grpc_core::SetBit(&opts->enabled_algorithms_bitset, algorithm);
83 }
84 
87  grpc_core::ClearBit(&opts->enabled_algorithms_bitset, algorithm);
88 }
89 
92  grpc_compression_algorithm algorithm) {
94  opts->enabled_algorithms_bitset)
95  .IsSet(algorithm);
96 }
trace.h
_gevent_test_main.result
result
Definition: _gevent_test_main.py:96
compression.h
grpc_compression_algorithm_is_stream
int grpc_compression_algorithm_is_stream(grpc_compression_algorithm)
Definition: compression.cc:40
memset
return memset(p, 0, total)
grpc_core::ParseCompressionAlgorithm
absl::optional< grpc_compression_algorithm > ParseCompressionAlgorithm(absl::string_view algorithm)
Definition: compression_internal.cc:94
slice.h
grpc_core::CompressionAlgorithmSet::CompressionAlgorithmForLevel
grpc_compression_algorithm CompressionAlgorithmForLevel(grpc_compression_level level) const
Definition: compression_internal.cc:108
string.h
grpc_compression_algorithm
grpc_compression_algorithm
Definition: compression_types.h:60
grpc_core::StringViewFromSlice
absl::string_view StringViewFromSlice(const grpc_slice &slice)
Definition: slice_internal.h:93
useful.h
grpc_compression_options_disable_algorithm
void grpc_compression_options_disable_algorithm(grpc_compression_options *opts, grpc_compression_algorithm algorithm)
Definition: compression.cc:85
cstest_report.opts
opts
Definition: cstest_report.py:81
grpc_compression_options_is_algorithm_enabled
int grpc_compression_options_is_algorithm_enabled(const grpc_compression_options *opts, grpc_compression_algorithm algorithm)
Definition: compression.cc:90
u
OPENSSL_EXPORT pem_password_cb void * u
Definition: pem.h:351
setup.name
name
Definition: setup.py:542
grpc_compression_options
Definition: compression_types.h:80
uint32_t
unsigned int uint32_t
Definition: stdint-msvc2008.h:80
grpc_compression_options_init
void grpc_compression_options_init(grpc_compression_options *opts)
Definition: compression.cc:74
absl::optional::has_value
constexpr bool has_value() const noexcept
Definition: abseil-cpp/absl/types/optional.h:461
grpc_core::CompressionAlgorithmSet::IsSet
bool IsSet(grpc_compression_algorithm algorithm) const
Definition: compression_internal.cc:190
grpc_compression_options_enable_algorithm
void grpc_compression_options_enable_algorithm(grpc_compression_options *opts, grpc_compression_algorithm algorithm)
Definition: compression.cc:80
absl::optional
Definition: abseil-cpp/absl/types/internal/optional.h:61
grpc_compression_algorithm_parse
int grpc_compression_algorithm_parse(grpc_slice name, grpc_compression_algorithm *algorithm)
Definition: compression.cc:44
grpc_core::ClearBit
T ClearBit(T *i, size_t n)
Definition: useful.h:55
grpc_slice
Definition: include/grpc/impl/codegen/slice.h:65
slice_internal.h
grpc_compression_algorithm_for_level
grpc_compression_algorithm grpc_compression_algorithm_for_level(grpc_compression_level level, uint32_t accepted_encodings)
Definition: compression.cc:68
grpc_core::CompressionAlgorithmAsString
const char * CompressionAlgorithmAsString(grpc_compression_algorithm algorithm)
Definition: compression_internal.cc:38
stdint.h
compression_types.h
compression_internal.h
absl::optional::value
constexpr const T & value() const &
Definition: abseil-cpp/absl/types/optional.h:475
grpc_compression_algorithm_name
int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm, const char **name)
Definition: compression.cc:56
grpc_compression_level
grpc_compression_level
Definition: compression_types.h:72
GRPC_COMPRESS_ALGORITHMS_COUNT
@ GRPC_COMPRESS_ALGORITHMS_COUNT
Definition: compression_types.h:65
grpc_core::SetBit
T SetBit(T *i, size_t n)
Definition: useful.h:49
api_trace.h
grpc_core::CompressionAlgorithmSet::FromUint32
static CompressionAlgorithmSet FromUint32(uint32_t value)
Definition: compression_internal.cc:155
client.level
level
Definition: examples/python/async_streaming/client.py:118
GRPC_API_TRACE
#define GRPC_API_TRACE(fmt, nargs, args)
Definition: api_trace.h:48
grpc_compression_algorithm_is_message
int grpc_compression_algorithm_is_message(grpc_compression_algorithm)
Definition: compression.cc:36
port_platform.h


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:52