Go to the documentation of this file.
31 #include "absl/strings/match.h"
32 #include "absl/strings/str_cat.h"
33 #include "absl/strings/str_format.h"
34 #include "absl/strings/str_join.h"
52 return a_vtable->
cmp(a_ptr, b_ptr);
64 return PointerCompare(
p_, vtable_, rhs.
p_, rhs.
vtable_) < 0;
86 if (
args !=
nullptr) {
87 for (
size_t i = 0;
i <
args->num_args;
i++) {
95 std::vector<grpc_arg> c_args;
97 char*
name =
const_cast<char*
>(
key.c_str());
98 c_args.push_back(
Match(
103 const_cast<char*
>(s.c_str()));
136 if (
v ==
nullptr)
return absl::nullopt;
137 if (!absl::holds_alternative<int>(*
v))
return absl::nullopt;
138 return absl::get<int>(*
v);
144 if (!ms.has_value())
return absl::nullopt;
153 if (
v ==
nullptr)
return absl::nullopt;
154 if (!absl::holds_alternative<std::string>(*
v))
return absl::nullopt;
155 return absl::get<std::string>(*
v);
160 if (
v ==
nullptr)
return nullptr;
161 if (!absl::holds_alternative<Pointer>(*
v))
return nullptr;
162 return absl::get<Pointer>(*v).c_pointer();
167 if (
v ==
nullptr)
return absl::nullopt;
168 auto*
i = absl::get_if<int>(
v);
172 return absl::nullopt;
187 std::vector<std::string> arg_strings;
190 if (
auto*
i = absl::get_if<int>(&
value)) {
192 }
else if (
auto* s = absl::get_if<std::string>(&
value)) {
194 }
else if (
auto* p = absl::get_if<Pointer>(&
value)) {
217 dst.value.pointer.p =
233 size_t num_to_remove) {
235 num_to_remove,
nullptr, 0);
239 size_t num_to_remove) {
240 for (
size_t i = 0;
i < num_to_remove; ++
i) {
241 if (strcmp(
arg->key, to_remove[
i]) == 0)
return true;
248 const grpc_arg* to_add,
size_t num_to_add) {
250 size_t num_args_to_copy = 0;
251 if (src !=
nullptr) {
261 dst->num_args = num_args_to_copy + num_to_add;
262 if (
dst->num_args == 0) {
270 if (src !=
nullptr) {
278 for (
size_t i = 0;
i < num_to_add; ++
i) {
293 const size_t max_out = (
a->num_args +
b->num_args);
296 for (
size_t i = 0;
i <
a->num_args; ++
i) uniques[
i] =
a->args[
i];
298 size_t uniques_idx =
a->num_args;
299 for (
size_t i = 0;
i <
b->num_args; ++
i) {
300 const char* b_key =
b->args[
i].key;
302 uniques[uniques_idx++] =
b->args[
i];
313 if (c != 0)
return c;
314 c = strcmp(
a->key,
b->key);
315 if (c != 0)
return c;
318 return strcmp(
a->value.string,
b->value.string);
322 return PointerCompare(
a->value.pointer.p,
a->value.pointer.vtable,
323 b->value.pointer.p,
b->value.pointer.vtable);
333 int c = strcmp((*a)->key, (*b)->key);
363 for (
i = 0;
i <
a->num_args;
i++) {
364 switch (
a->args[
i].type) {
371 a->args[
i].value.pointer.vtable->destroy(
a->args[
i].value.pointer.p);
382 if (
a ==
nullptr &&
b ==
nullptr)
return 0;
383 if (
a ==
nullptr ||
b ==
nullptr)
return a ==
nullptr ? -1 : 1;
385 if (c != 0)
return c;
386 for (
size_t i = 0;
i <
a->num_args;
i++) {
388 if (c != 0)
return c;
395 if (
args !=
nullptr) {
396 for (
size_t i = 0;
i <
args->num_args; ++
i) {
397 if (strcmp(
args->args[
i].key,
name) == 0) {
398 return &
args->args[
i];
407 if (
arg ==
nullptr)
return options.default_value;
433 if (
arg ==
nullptr)
return nullptr;
448 if (
arg ==
nullptr)
return default_value;
451 return default_value;
466 const char*
name,
bool default_value) {
510 std::map<absl::string_view, std::vector<absl::string_view>>
537 for (
const auto& concatenated_value : concatenated_values) {
char * grpc_channel_args_find_string(const grpc_channel_args *args, const char *name)
char * grpc_channel_arg_get_string(const grpc_arg *arg)
void * GetVoidPointer(absl::string_view name) const
#define GRPC_ARG_PRIMARY_USER_AGENT_STRING
bool operator<(const Pointer &rhs) const
static const grpc_transport_vtable vtable
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
ChannelArgs ChannelArgsBuiltinPrecondition(const grpc_channel_args *src)
union grpc_arg::grpc_arg_value value
ABSL_MUST_USE_RESULT std::string StrFormat(const FormatSpec< Args... > &format, const Args &... args)
#define GPR_DEBUG_ASSERT(x)
struct grpc_arg::grpc_arg_value::grpc_arg_pointer pointer
int grpc_channel_arg_get_integer(const grpc_arg *arg, const grpc_integer_options options)
grpc_channel_args * grpc_channel_args_copy_and_remove(const grpc_channel_args *src, const char **to_remove, size_t num_to_remove)
#define GRPC_ARG_SECONDARY_USER_AGENT_STRING
std::unique_ptr< unsigned char[]> p_
bool StartsWith(absl::string_view text, absl::string_view prefix) noexcept
GPRAPI void gpr_free(void *ptr)
static ChannelArgs FromC(const grpc_channel_args *args)
GPRAPI void * gpr_malloc(size_t size)
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_arg grpc_channel_arg_string_create(char *name, char *value)
bool operator==(const Pointer &rhs) const
bool grpc_channel_args_find_bool(const grpc_channel_args *args, const char *name, bool default_value)
bool grpc_channel_arg_get_bool(const grpc_arg *arg, bool default_value)
for(map_begin_internal(intern, &it);!map_done(&it);map_next(&it))
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
std::string StrJoin(Iterator start, Iterator end, absl::string_view sep, Formatter &&fmt)
absl::optional< bool > GetBool(absl::string_view name) const
const grpc_arg_pointer_vtable * vtable
def c_str(s, encoding='ascii')
const Value * Get(absl::string_view name) const
int grpc_channel_args_compare(const grpc_channel_args *a, const grpc_channel_args *b)
AVL< std::string, Value > args_
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
grpc_core::ChannelArgs(* grpc_channel_args_client_channel_creation_mutator)(const char *target, grpc_core::ChannelArgs old_args, grpc_channel_stack_type type)
grpc_channel_args * grpc_channel_args_union(const grpc_channel_args *a, const grpc_channel_args *b)
const grpc_channel_args * ToC() const
void grpc_channel_args_destroy(grpc_channel_args *a)
grpc_channel_args * grpc_channel_args_copy(const grpc_channel_args *src)
static int cmp_arg(const grpc_arg *a, const grpc_arg *b)
void qsort(void *a, size_t n, size_t es, int(*cmp)(const void *, const void *))
void grpc_channel_args_set_client_channel_creation_mutator(grpc_channel_args_client_channel_creation_mutator cb)
static int cmp_key_stable(const void *ap, const void *bp)
static constexpr Duration NegativeInfinity()
static bool should_remove_arg(const grpc_arg *arg, const char **to_remove, size_t num_to_remove)
bool grpc_channel_args_want_minimal_stack(const grpc_channel_args *args)
GRPC_MUST_USE_RESULT ChannelArgs Set(absl::string_view name, Value value) const
absl::optional< int > GetInt(absl::string_view name) const
static constexpr Duration Milliseconds(int64_t millis)
std::string ToString() const
grpc_arg grpc_channel_arg_integer_create(char *name, int value)
int QsortCompare(const T &a, const T &b)
absl::optional< Duration > GetDurationFromIntMillis(absl::string_view name) const
#define GRPC_ARG_MINIMAL_STACK
auto Match(const absl::variant< T0, Ts... > &value, Fs... fs) -> decltype(std::declval< OverloadType< Fs... >>()(std::declval< T0 >()))
grpc_channel_args * grpc_channel_args_normalize(const grpc_channel_args *src)
GPRAPI char * gpr_strdup(const char *src)
absl::variant< int, std::string, Pointer > Value
int grpc_channel_args_find_integer(const grpc_channel_args *args, const char *name, const grpc_integer_options options)
static grpc_arg copy_arg(const grpc_arg *src)
GRPC_MUST_USE_RESULT ChannelArgs Remove(absl::string_view name) const
int(* cmp)(void *p, void *q)
static bool to_string(zval *from)
grpc_arg grpc_channel_arg_pointer_create(char *name, void *value, const grpc_arg_pointer_vtable *vtable)
const grpc_arg * grpc_channel_args_find(const grpc_channel_args *args, const char *name)
const grpc_arg_pointer_vtable * vtable_
std::string grpc_channel_args_string(const grpc_channel_args *args)
OPENSSL_EXPORT pem_password_cb * cb
grpc_channel_args_client_channel_creation_mutator grpc_channel_args_get_client_channel_creation_mutator()
grpc_channel_args * grpc_channel_args_copy_and_add(const grpc_channel_args *src, const grpc_arg *to_add, size_t num_to_add)
static constexpr Duration Infinity()
absl::optional< absl::string_view > GetString(absl::string_view name) const
grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:52