#include <resolver.h>
Classes | |
struct | Result |
Results returned by the resolver. More... | |
class | ResultHandler |
Public Member Functions | |
Resolver & | operator= (const Resolver &)=delete |
void | Orphan () override |
virtual void | RequestReresolutionLocked () |
virtual void | ResetBackoffLocked () |
Resolver (const Resolver &)=delete | |
virtual void | StartLocked ()=0 |
Starts resolving. More... | |
~Resolver () override=default | |
![]() | |
InternallyRefCounted (const InternallyRefCounted &)=delete | |
InternallyRefCounted & | operator= (const InternallyRefCounted &)=delete |
![]() | |
Orphanable & | operator= (const Orphanable &)=delete |
Orphanable (const Orphanable &)=delete | |
Protected Member Functions | |
Resolver () | |
virtual void | ShutdownLocked ()=0 |
Shuts down the resolver. More... | |
![]() | |
InternallyRefCounted (const char *trace=nullptr, intptr_t initial_refcount=1) | |
RefCountedPtr< Resolver > | Ref () GRPC_MUST_USE_RESULT |
RefCountedPtr< Resolver > | Ref (const DebugLocation &location, const char *reason) GRPC_MUST_USE_RESULT |
void | Unref () |
void | Unref (const DebugLocation &location, const char *reason) |
~InternallyRefCounted () override=default | |
![]() | |
Orphanable () | |
virtual | ~Orphanable () |
Interface for name resolution.
This interface is designed to support both push-based and pull-based mechanisms. A push-based mechanism is one where the resolver will subscribe to updates for a given name, and the name service will proactively send new data to the resolver whenever the data associated with the name changes. A pull-based mechanism is one where the resolver needs to query the name service again to get updated information (e.g., DNS).
Note: All methods with a "Locked" suffix must be called from the work_serializer passed to the constructor.
Definition at line 53 of file resolver/resolver.h.
|
overridedefault |
|
protected |
Definition at line 37 of file resolver.cc.
|
inlineoverridevirtual |
Implements grpc_core::Orphanable.
Definition at line 124 of file resolver/resolver.h.
|
inlinevirtual |
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 in grpc_core::FakeResolver, and grpc_core::PollingResolver.
Definition at line 116 of file resolver/resolver.h.
|
inlinevirtual |
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 in grpc_core::PollingResolver.
Definition at line 121 of file resolver/resolver.h.
|
protectedpure virtual |
Shuts down the resolver.
Implemented in grpc_core::FakeResolver, and grpc_core::PollingResolver.
|
pure virtual |
Starts resolving.
Implemented in grpc_core::FakeResolver, and grpc_core::PollingResolver.