Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
grpc_core::PollingResolver Class Referenceabstract

#include <polling_resolver.h>

Inheritance diagram for grpc_core::PollingResolver:
Inheritance graph
[legend]

Public Member Functions

 PollingResolver (ResolverArgs args, const grpc_channel_args *channel_args, Duration min_time_between_resolutions, BackOff::Options backoff_options, TraceFlag *tracer)
 
void RequestReresolutionLocked () override
 
void ResetBackoffLocked () override
 
void ShutdownLocked () override
 Shuts down the resolver. More...
 
void StartLocked () override
 Starts resolving. More...
 
 ~PollingResolver () override
 
- Public Member Functions inherited from grpc_core::Resolver
Resolveroperator= (const Resolver &)=delete
 
void Orphan () override
 
 Resolver (const Resolver &)=delete
 
 ~Resolver () override=default
 
- Public Member Functions inherited from grpc_core::InternallyRefCounted< Resolver >
 InternallyRefCounted (const InternallyRefCounted &)=delete
 
InternallyRefCountedoperator= (const InternallyRefCounted &)=delete
 
- Public Member Functions inherited from grpc_core::Orphanable
Orphanableoperator= (const Orphanable &)=delete
 
 Orphanable (const Orphanable &)=delete
 

Protected Member Functions

const std::string & authority () const
 
const grpc_channel_argschannel_args () const
 
grpc_pollset_setinterested_parties () const
 
const std::string & name_to_resolve () const
 
void OnRequestComplete (Result result)
 
virtual OrphanablePtr< OrphanableStartRequest ()=0
 
- Protected Member Functions inherited from grpc_core::Resolver
 Resolver ()
 
- Protected Member Functions inherited from grpc_core::InternallyRefCounted< Resolver >
 InternallyRefCounted (const char *trace=nullptr, intptr_t initial_refcount=1)
 
RefCountedPtr< ResolverRef () GRPC_MUST_USE_RESULT
 
RefCountedPtr< ResolverRef (const DebugLocation &location, const char *reason) GRPC_MUST_USE_RESULT
 
void Unref ()
 
void Unref (const DebugLocation &location, const char *reason)
 
 ~InternallyRefCounted () override=default
 
- Protected Member Functions inherited from grpc_core::Orphanable
 Orphanable ()
 
virtual ~Orphanable ()
 

Private Member Functions

void MaybeStartResolvingLocked ()
 
void OnNextResolutionLocked (grpc_error_handle error)
 
void OnRequestCompleteLocked (Result result)
 
void StartResolvingLocked ()
 

Static Private Member Functions

static void OnNextResolution (void *arg, grpc_error_handle error)
 

Private Attributes

std::string authority_
 authority More...
 
BackOff backoff_
 retry backoff state More...
 
const grpc_channel_argschannel_args_ = nullptr
 channel args More...
 
bool have_next_resolution_timer_ = false
 next resolution timer More...
 
grpc_pollset_setinterested_parties_ = nullptr
 pollset_set to drive the name resolution process More...
 
absl::optional< Timestamplast_resolution_timestamp_
 timestamp of last DNS request More...
 
Duration min_time_between_resolutions_
 min time between DNS requests More...
 
std::string name_to_resolve_
 name to resolve More...
 
grpc_timer next_resolution_timer_
 
grpc_closure on_next_resolution_
 
OrphanablePtr< Orphanablerequest_
 are we currently resolving? More...
 
std::unique_ptr< ResultHandlerresult_handler_
 
bool shutdown_ = false
 are we shutting down? More...
 
TraceFlagtracer_
 
std::shared_ptr< WorkSerializerwork_serializer_
 

Detailed Description

Definition at line 46 of file polling_resolver.h.

Constructor & Destructor Documentation

◆ PollingResolver()

grpc_core::PollingResolver::PollingResolver ( ResolverArgs  args,
const grpc_channel_args channel_args,
Duration  min_time_between_resolutions,
BackOff::Options  backoff_options,
TraceFlag tracer 
)

Definition at line 43 of file polling_resolver.cc.

◆ ~PollingResolver()

grpc_core::PollingResolver::~PollingResolver ( )
override

Definition at line 62 of file polling_resolver.cc.

Member Function Documentation

◆ authority()

const std::string& grpc_core::PollingResolver::authority ( ) const
inlineprotected

Definition at line 70 of file polling_resolver.h.

◆ channel_args()

const grpc_channel_args* grpc_core::PollingResolver::channel_args ( ) const
inlineprotected

Definition at line 73 of file polling_resolver.h.

◆ interested_parties()

grpc_pollset_set* grpc_core::PollingResolver::interested_parties ( ) const
inlineprotected

Definition at line 72 of file polling_resolver.h.

◆ MaybeStartResolvingLocked()

void grpc_core::PollingResolver::MaybeStartResolvingLocked ( )
private

Definition at line 168 of file polling_resolver.cc.

◆ name_to_resolve()

const std::string& grpc_core::PollingResolver::name_to_resolve ( ) const
inlineprotected

Definition at line 71 of file polling_resolver.h.

◆ OnNextResolution()

void grpc_core::PollingResolver::OnNextResolution ( void *  arg,
grpc_error_handle  error 
)
staticprivate

Definition at line 95 of file polling_resolver.cc.

◆ OnNextResolutionLocked()

void grpc_core::PollingResolver::OnNextResolutionLocked ( grpc_error_handle  error)
private

Definition at line 102 of file polling_resolver.cc.

◆ OnRequestComplete()

void grpc_core::PollingResolver::OnRequestComplete ( Result  result)
protected

Definition at line 117 of file polling_resolver.cc.

◆ OnRequestCompleteLocked()

void grpc_core::PollingResolver::OnRequestCompleteLocked ( Result  result)
private

Definition at line 124 of file polling_resolver.cc.

◆ RequestReresolutionLocked()

void grpc_core::PollingResolver::RequestReresolutionLocked ( )
overridevirtual

Asks the resolver to obtain an updated resolver result, if applicable.

This is useful for pull-based implementations to decide when to re-resolve. However, the implementation is not required to re-resolve immediately upon receiving this call; it may instead elect to delay based on some configured minimum time between queries, to avoid hammering the name service with queries.

For push-based implementations, this may be a no-op.

Note: Implementations must not invoke any method on the ResultHandler from within this call.

Reimplemented from grpc_core::Resolver.

Definition at line 71 of file polling_resolver.cc.

◆ ResetBackoffLocked()

void grpc_core::PollingResolver::ResetBackoffLocked ( )
overridevirtual

Resets the re-resolution backoff, if any. This needs to be implemented only by pull-based implementations; for push-based implementations, it will be a no-op.

Reimplemented from grpc_core::Resolver.

Definition at line 77 of file polling_resolver.cc.

◆ ShutdownLocked()

void grpc_core::PollingResolver::ShutdownLocked ( )
overridevirtual

Shuts down the resolver.

Implements grpc_core::Resolver.

Definition at line 84 of file polling_resolver.cc.

◆ StartLocked()

void grpc_core::PollingResolver::StartLocked ( )
overridevirtual

Starts resolving.

Implements grpc_core::Resolver.

Definition at line 69 of file polling_resolver.cc.

◆ StartRequest()

virtual OrphanablePtr<Orphanable> grpc_core::PollingResolver::StartRequest ( )
protectedpure virtual

◆ StartResolvingLocked()

void grpc_core::PollingResolver::StartResolvingLocked ( )
private

Definition at line 204 of file polling_resolver.cc.

Member Data Documentation

◆ authority_

std::string grpc_core::PollingResolver::authority_
private

authority

Definition at line 85 of file polling_resolver.h.

◆ backoff_

BackOff grpc_core::PollingResolver::backoff_
private

retry backoff state

Definition at line 108 of file polling_resolver.h.

◆ channel_args_

const grpc_channel_args* grpc_core::PollingResolver::channel_args_ = nullptr
private

channel args

Definition at line 89 of file polling_resolver.h.

◆ have_next_resolution_timer_

bool grpc_core::PollingResolver::have_next_resolution_timer_ = false
private

next resolution timer

Definition at line 100 of file polling_resolver.h.

◆ interested_parties_

grpc_pollset_set* grpc_core::PollingResolver::interested_parties_ = nullptr
private

pollset_set to drive the name resolution process

Definition at line 94 of file polling_resolver.h.

◆ last_resolution_timestamp_

absl::optional<Timestamp> grpc_core::PollingResolver::last_resolution_timestamp_
private

timestamp of last DNS request

Definition at line 106 of file polling_resolver.h.

◆ min_time_between_resolutions_

Duration grpc_core::PollingResolver::min_time_between_resolutions_
private

min time between DNS requests

Definition at line 104 of file polling_resolver.h.

◆ name_to_resolve_

std::string grpc_core::PollingResolver::name_to_resolve_
private

name to resolve

Definition at line 87 of file polling_resolver.h.

◆ next_resolution_timer_

grpc_timer grpc_core::PollingResolver::next_resolution_timer_
private

Definition at line 101 of file polling_resolver.h.

◆ on_next_resolution_

grpc_closure grpc_core::PollingResolver::on_next_resolution_
private

Definition at line 102 of file polling_resolver.h.

◆ request_

OrphanablePtr<Orphanable> grpc_core::PollingResolver::request_
private

are we currently resolving?

Definition at line 98 of file polling_resolver.h.

◆ result_handler_

std::unique_ptr<ResultHandler> grpc_core::PollingResolver::result_handler_
private

Definition at line 91 of file polling_resolver.h.

◆ shutdown_

bool grpc_core::PollingResolver::shutdown_ = false
private

are we shutting down?

Definition at line 96 of file polling_resolver.h.

◆ tracer_

TraceFlag* grpc_core::PollingResolver::tracer_
private

Definition at line 92 of file polling_resolver.h.

◆ work_serializer_

std::shared_ptr<WorkSerializer> grpc_core::PollingResolver::work_serializer_
private

Definition at line 90 of file polling_resolver.h.


The documentation for this class was generated from the following files:


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:36