Go to the documentation of this file.
43 const char*
dns_server,
const char*
name,
const char* default_port,
45 std::unique_ptr<grpc_core::ServerAddressList>* addresses,
46 std::unique_ptr<grpc_core::ServerAddressList>* balancer_addresses,
47 char** service_config_json,
int query_timeout_ms);
87 last_resolution_time =
now;
105 bool Cancel(TaskHandle )
override {
return false; }
111 const char*
dns_server,
const char*
name,
const char* default_port,
113 std::unique_ptr<grpc_core::ServerAddressList>* addresses,
114 std::unique_ptr<grpc_core::ServerAddressList>* balancer_addresses,
115 char** service_config_json,
int query_timeout_ms) {
118 addresses, balancer_addresses, service_config_json, query_timeout_ms);
124 "last_resolution_time:%" PRId64
" now:%" PRId64
125 " min_time_between:%d",
126 last_resolution_time.milliseconds_after_process_epoch(),
132 last_resolution_time =
now;
164 grpc_schedule_on_exec_ctx);
259 cb_arg->
resolver->RequestReresolutionLocked();
272 cb_arg->
resolver->RequestReresolutionLocked();
285 cb_arg->
resolver->RequestReresolutionLocked();
310 args.result_handler = std::unique_ptr<grpc_core::Resolver::ResultHandler>(
318 args.args = &cooldown_args;
323 res_cb_arg->
resolver->StartLocked();
330 res_cb_arg->
uri_str =
"dns:127.0.0.1";
340 int main(
int argc,
char** argv) {
344 auto work_serializer = std::make_shared<grpc_core::WorkSerializer>();
struct grpc_pollset_worker grpc_pollset_worker
#define GRPC_CLOSURE_INIT(closure, cb, cb_arg, scheduler)
std::chrono::duration< std::int_fast64_t > seconds
static int g_resolution_count
size_t grpc_pollset_size(void)
GPRAPI void gpr_mu_unlock(gpr_mu *mu)
ResolverFactory * LookupResolverFactory(absl::string_view scheme) const
grpc_core::OrphanablePtr< grpc_core::Resolver > resolver
gpr_timespec grpc_timeout_seconds_to_deadline(int64_t time_s)
virtual OrphanablePtr< Resolver > CreateResolver(ResolverArgs args) const =0
Returns a new resolver instance.
void SetCallback(ResultCallback result_cb, OnResolutionCallbackArg *state)
static void on_first_resolution(OnResolutionCallbackArg *cb_arg)
struct grpc_pollset_set grpc_pollset_set
static grpc_ares_request *(* g_default_dns_lookup_ares)(const char *dns_server, const char *name, const char *default_port, grpc_pollset_set *interested_parties, grpc_closure *on_done, std::unique_ptr< grpc_core::ServerAddressList > *addresses, std::unique_ptr< grpc_core::ServerAddressList > *balancer_addresses, char **service_config_json, int query_timeout_ms)
grpc_pollset_set * grpc_pollset_set_create()
GPRAPI void gpr_event_set(gpr_event *ev, void *value)
GPRAPI void gpr_free(void *ptr)
ResultHandler * result_handler
static grpc_ares_request * test_dns_lookup_ares(const char *dns_server, const char *name, const char *default_port, grpc_pollset_set *, grpc_closure *on_done, std::unique_ptr< grpc_core::ServerAddressList > *addresses, std::unique_ptr< grpc_core::ServerAddressList > *balancer_addresses, char **service_config_json, int query_timeout_ms)
static void iomgr_args_finish(iomgr_args *args)
static void poll_pollset_until_request_done(iomgr_args *args)
grpc_error_handle grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker **worker, grpc_core::Timestamp deadline)
#define GRPC_LOG_IF_ERROR(what, error)
static void on_third_resolution(OnResolutionCallbackArg *cb_arg)
static absl::StatusOr< URI > Parse(absl::string_view uri_text)
static bool g_all_callbacks_invoked
void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu)
static void start_test_under_work_serializer(void *arg)
GPRAPI void * gpr_zalloc(size_t size)
static void test_cooldown()
static void iomgr_args_init(iomgr_args *args)
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
void grpc_pollset_set_del_pollset(grpc_pollset_set *pollset_set, grpc_pollset *pollset)
static const CoreConfiguration & Get()
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
Results returned by the resolver.
void grpc_pollset_set_destroy(grpc_pollset_set *pollset_set)
#define gpr_atm_acq_load(p)
ResultCallback result_cb_
#define gpr_atm_rel_store(p, value)
GPRAPI void gpr_mu_lock(gpr_mu *mu)
GPRAPI void gpr_event_init(gpr_event *ev)
grpc_error_handle grpc_pollset_kick(grpc_pollset *pollset, grpc_pollset_worker *specific_worker)
static constexpr Timestamp ProcessEpoch()
GPRAPI gpr_timespec gpr_now(gpr_clock_type clock)
GPRAPI void * gpr_event_wait(gpr_event *ev, gpr_timespec abs_deadline)
static void on_second_resolution(OnResolutionCallbackArg *cb_arg)
static std::shared_ptr< grpc_core::WorkSerializer > * g_work_serializer
static constexpr Duration Zero()
static constexpr Duration Milliseconds(int64_t millis)
void(*)(OnResolutionCallbackArg *state) ResultCallback
ABSL_MUST_USE_RESULT bool ok() const
constexpr int64_t millis() const
grpc_arg grpc_channel_arg_integer_create(char *name, int value)
DNSResolver * GetDNSResolver()
grpc_core::ExecCtx exec_ctx
void grpc_pollset_shutdown(grpc_pollset *pollset, grpc_closure *closure)
#define GRPC_ARG_DNS_MIN_TIME_BETWEEN_RESOLUTIONS_MS
std::unique_ptr< T, Deleter > OrphanablePtr
int main(int argc, char **argv)
static void on_fourth_resolution(OnResolutionCallbackArg *cb_arg)
void ReportResult(grpc_core::Resolver::Result) override
Reports a result to the channel.
static grpc_core::Timestamp n_sec_deadline(int seconds)
virtual TaskHandle ResolveName(absl::string_view name, absl::string_view default_port, grpc_pollset_set *interested_parties, std::function< void(absl::StatusOr< std::vector< grpc_resolved_address >>)> on_done)=0
void SetDNSResolver(DNSResolver *resolver)
const ResolverRegistry & resolver_registry() const
grpc_ares_request *(* grpc_dns_lookup_ares)(const char *dns_server, const char *name, const char *default_port, grpc_pollset_set *interested_parties, grpc_closure *on_done, std::unique_ptr< grpc_core::ServerAddressList > *addresses, std::unique_ptr< grpc_core::ServerAddressList > *balancer_addresses, char **service_config_json, int query_timeout_ms)
virtual bool Cancel(TaskHandle handle)=0
static void do_nothing(void *, grpc_error_handle)
OnResolutionCallbackArg * state_
virtual absl::string_view scheme() const =0
GRPCAPI void grpc_init(void)
static Timestamp FromTimespecRoundUp(gpr_timespec t)
static gpr_timespec test_deadline(void)
void grpc_pollset_destroy(grpc_pollset *pollset)
grpc_pollset_set * pollset_set
void grpc_pollset_set_add_pollset(grpc_pollset_set *pollset_set, grpc_pollset *pollset)
constexpr int kMinResolutionPeriodMs
GRPCAPI void grpc_shutdown(void)
virtual absl::StatusOr< std::vector< grpc_resolved_address > > ResolveNameBlocking(absl::string_view name, absl::string_view default_port)=0
static struct iomgr_args g_iomgr_args
OPENSSL_EXPORT pem_password_cb * cb
static struct rpc_state state
const Status & status() const &
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:17