Go to the documentation of this file.
26 #include "absl/container/inlined_vector.h"
27 #include "absl/strings/ascii.h"
28 #include "absl/strings/str_split.h"
53 class CommaSeparatedLists {
57 auto add_char = [&text_buffer,
this](
char c) {
61 for (
size_t list = 0; list <
kNumLists; ++list) {
62 char*
start = text_buffer;
65 if ((list & (1 << algorithm)) == 0)
continue;
66 if (
start != text_buffer) {
72 for (
const char* p =
name; *
p !=
'\0'; ++
p) {
91 const CommaSeparatedLists kCommaSeparatedLists;
96 if (algorithm ==
"identity") {
98 }
else if (algorithm ==
"deflate") {
100 }
else if (algorithm ==
"gzip") {
103 return absl::nullopt;
110 GRPC_API_TRACE(
"grpc_message_compression_algorithm_for_level(level=%d)", 1,
114 static_cast<int>(
level));
133 algos.push_back(algo);
147 return algos[algos.size() / 2];
170 if (
args !=
nullptr) {
184 std::initializer_list<grpc_compression_algorithm> algorithms) {
185 for (
auto algorithm : algorithms) {
192 size_t i =
static_cast<size_t>(algorithm);
201 size_t i =
static_cast<size_t>(algorithm);
221 if (parsed.has_value()) {
234 if (
args ==
nullptr)
return absl::nullopt;
235 for (
size_t i = 0;
i <
args->num_args;
i++) {
240 args->args[
i].value.integer);
246 return absl::nullopt;
ABSL_MUST_USE_RESULT absl::string_view StripAsciiWhitespace(absl::string_view str)
strings_internal::Splitter< typename strings_internal::SelectDelimiter< Delimiter >::type, AllowEmpty, absl::string_view > StrSplit(strings_internal::ConvertibleToStringView text, Delimiter d)
@ GRPC_COMPRESS_LEVEL_MED
GRPC_BITSET_CONSTEXPR_MUTATOR void set(int i)
absl::optional< grpc_compression_algorithm > ParseCompressionAlgorithm(absl::string_view algorithm)
absl::optional< grpc_compression_algorithm > DefaultCompressionAlgorithmFromChannelArgs(const grpc_channel_args *args)
grpc_compression_algorithm CompressionAlgorithmForLevel(grpc_compression_level level) const
grpc_compression_algorithm
static Slice FromStaticString(const char *s)
OPENSSL_EXPORT pem_password_cb void * u
#define GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET
static constexpr size_t kTextBufferSize
constexpr bool is_set(int i) const
absl::string_view lists_[kNumLists]
static constexpr size_t kNumLists
bool IsSet(grpc_compression_algorithm algorithm) const
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
@ GRPC_COMPRESS_LEVEL_NONE
absl::string_view ToString() const
@ GRPC_COMPRESS_LEVEL_HIGH
void Set(grpc_compression_algorithm algorithm)
const char * CompressionAlgorithmAsString(grpc_compression_algorithm algorithm)
char text_buffer_[kTextBufferSize]
static CompressionAlgorithmSet FromChannelArgs(const grpc_channel_args *args)
BitSet< GRPC_COMPRESS_ALGORITHMS_COUNT > set_
static CompressionAlgorithmSet FromString(absl::string_view str)
@ GRPC_COMPRESS_LEVEL_LOW
absl::string_view string_view
@ GRPC_COMPRESS_ALGORITHMS_COUNT
CompressionAlgorithmSet()
std::enable_if< std::is_unsigned< Int >::value &&(sizeof(Int) *8 >=kTotalBits), Int >::type ToInt() const
static CompressionAlgorithmSet FromUint32(uint32_t value)
int grpc_channel_args_find_integer(const grpc_channel_args *args, const char *name, const grpc_integer_options options)
#define GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM
uint32_t ToLegacyBitmask() const
#define GRPC_API_TRACE(fmt, nargs, args)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:52