Go to the documentation of this file.
19 #ifndef GRPC_CORE_LIB_CHANNEL_CHANNEL_ARGS_H
20 #define GRPC_CORE_LIB_CHANNEL_CHANNEL_ARGS_H
28 #include <type_traits>
31 #include "absl/meta/type_traits.h"
32 #include "absl/strings/string_view.h"
33 #include "absl/types/optional.h"
34 #include "absl/types/variant.h"
59 template <
typename T,
typename Ignored =
void >
69 std::is_base_of<RefCounted<T>, T>::value ||
70 std::is_base_of<RefCounted<T, NonPolymorphicRefCount>, T>::value ||
71 std::is_base_of<DualRefCounted<T>, T>::value,
76 [](
void* p) ->
void* {
return static_cast<T*
>(p)->
Ref().release(); },
78 [](
void* p) {
static_cast<T*
>(p)->Unref(); },
80 [](
void* p1,
void* p2) {
81 return T::ChannelArgsCompare(
static_cast<const T*
>(p1),
82 static_cast<const T*
>(p2));
96 absl::
void_t<typename T::RawPointerChannelArgTag>> {
101 [](
void* p) ->
void* {
return p; },
105 [](
void* p1,
void* p2) {
return QsortCompare(p1, p2); },
148 [](
void* p) {
return p; },
152 [](
void* p1,
void* p2) ->
int {
return QsortCompare(p1, p2); },
177 const char*
value)
const;
179 template <
typename T>
188 template <
typename T>
197 auto store_value =
value->Ref();
204 template <
typename T>
215 template <
typename T>
228 template <
typename T>
230 return Set(T::ChannelArgName(), p);
232 template <
typename T>
236 template <
typename T>
238 return GetPointer<T>(T::ChannelArgName());
240 template <
typename T>
242 auto* p = GetObject<T>();
243 if (p ==
nullptr)
return nullptr;
289 const grpc_arg* to_add,
size_t num_to_add);
339 const char*
name,
bool default_value);
341 template <
typename T>
346 return static_cast<T*
>(
arg->
value.pointer.p);
grpc_arg grpc_channel_arg_pointer_create(char *name, void *value, const grpc_arg_pointer_vtable *vtable)
void * GetVoidPointer(absl::string_view name) const
bool operator<(const Pointer &rhs) const
bool operator==(const ChannelArgs &other) const
const grpc_arg * grpc_channel_args_find(const grpc_channel_args *args, const char *name)
static const grpc_transport_vtable vtable
bool operator<(const ChannelArgs &other) const
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)
ChannelArgs ChannelArgsBuiltinPrecondition(const grpc_channel_args *src)
void grpc_channel_args_destroy(grpc_channel_args *a)
grpc_arg grpc_channel_arg_integer_create(char *name, int value)
bool WantMinimalStack() const
GRPC_MUST_USE_RESULT ChannelArgs SetObject(RefCountedPtr< T > p) const
T * grpc_channel_args_find_pointer(const grpc_channel_args *args, const char *name)
static int copy(grpc_slice_buffer *input, grpc_slice_buffer *output)
static ChannelArgs FromC(const grpc_channel_args *args)
grpc_channel_args * grpc_channel_args_union(const grpc_channel_args *a, const grpc_channel_args *b)
grpc_channel_args * grpc_channel_args_normalize(const grpc_channel_args *src)
typename std::enable_if< B, T >::type enable_if_t
bool grpc_channel_arg_get_bool(const grpc_arg *arg, bool default_value)
GRPC_MUST_USE_RESULT ChannelArgs SetIfUnset(absl::string_view name, T value)
bool operator==(const Pointer &rhs) const
static const grpc_arg_pointer_vtable * EmptyVTable()
Pointer(Pointer &&other) noexcept
#define T(upbtypeconst, upbtype, ctype, default_value)
bool Contains(absl::string_view name) const
static const grpc_arg_pointer_vtable * VTable()
Pointer & operator=(Pointer &&other) noexcept
GRPC_MUST_USE_RESULT auto Set(absl::string_view name, const RefCountedPtr< T > &value) const -> absl::enable_if_t< std::is_same< const grpc_arg_pointer_vtable *, decltype(ChannelArgTypeTraits< absl::remove_cvref_t< decltype(*value->Ref())>>::VTable())>::value, ChannelArgs >
std::string grpc_channel_args_string(const grpc_channel_args *args)
GRPC_MUST_USE_RESULT ChannelArgs SetObject(T *p) const
static const grpc_arg_pointer_vtable * VTable()
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
absl::optional< bool > GetBool(absl::string_view name) const
const Value * Get(absl::string_view name) const
constexpr T value_or(U &&v) const &
AVL< std::string, Value > args_
grpc_core::ChannelArgs(* grpc_channel_args_client_channel_creation_mutator)(const char *target, grpc_core::ChannelArgs old_args, grpc_channel_stack_type type)
const grpc_channel_args * ToC() const
typename remove_cvref< T >::type remove_cvref_t
grpc_channel_args_client_channel_creation_mutator grpc_channel_args_get_client_channel_creation_mutator()
typename AllocatorTraits< A >::pointer Pointer
void swap(Json::Value &a, Json::Value &b)
Specialize std::swap() for Json::Value.
void grpc_channel_args_set_client_channel_creation_mutator(grpc_channel_args_client_channel_creation_mutator cb)
grpc_channel_args * grpc_channel_args_copy_and_remove(const grpc_channel_args *src, const char **to_remove, size_t num_to_remove)
T * GetPointer(absl::string_view name) const
char * grpc_channel_arg_get_string(const grpc_arg *arg)
Pointer(void *p, const grpc_arg_pointer_vtable *vtable)
bool grpc_channel_args_find_bool(const grpc_channel_args *args, const char *name, bool default_value)
grpc_arg grpc_channel_arg_string_create(char *name, char *value)
grpc_channel_args * grpc_channel_args_copy(const grpc_channel_args *src)
const grpc_arg_pointer_vtable * c_vtable() const
bool operator!=(const Pointer &rhs) const
GRPC_MUST_USE_RESULT ChannelArgs Set(absl::string_view name, Value value) const
char * grpc_channel_args_find_string(const grpc_channel_args *args, const char *name)
Pointer & operator=(Pointer other)
absl::optional< int > GetInt(absl::string_view name) const
typename type_traits_internal::VoidTImpl< Ts... >::type void_t
std::string ToString() const
grpc_channel_args * grpc_channel_args_copy_and_add(const grpc_channel_args *src, const grpc_arg *to_add, size_t num_to_add)
int QsortCompare(const T &a, const T &b)
absl::optional< Duration > GetDurationFromIntMillis(absl::string_view name) const
GRPC_MUST_USE_RESULT absl::enable_if_t< std::is_same< const grpc_arg_pointer_vtable *, decltype(ChannelArgTypeTraits< T >::VTable())>::value, ChannelArgs > Set(absl::string_view name, T *value) const
Pointer(const Pointer &other)
int grpc_channel_args_compare(const grpc_channel_args *a, const grpc_channel_args *b)
static void * TakeUnownedPointer(T *p)
#define GRPC_ARG_MINIMAL_STACK
int grpc_channel_args_find_integer(const grpc_channel_args *args, const char *name, const grpc_integer_options options)
ChannelArgs(AVL< std::string, Value > args)
int grpc_channel_arg_get_integer(const grpc_arg *arg, const grpc_integer_options options)
struct grpc_integer_options grpc_integer_options
absl::variant< int, std::string, Pointer > Value
internal::RefMatcher< T & > Ref(T &x)
GRPC_MUST_USE_RESULT ChannelArgs Remove(absl::string_view name) const
bool grpc_channel_args_want_minimal_stack(const grpc_channel_args *args)
const grpc_arg_pointer_vtable * vtable_
RefCountedPtr< T > GetObjectRef()
OPENSSL_EXPORT pem_password_cb * cb
absl::optional< absl::string_view > GetString(absl::string_view name) const
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:43