2424namespace Grpc . Net . Client . Balancer
2525{
2626 /// <summary>
27- /// An abstract base type for <see cref="Resolver"/> implementations that use asynchronous logic to resolve the <see cref="Uri"/>.
27+ /// An abstract base type for <see cref="Resolver"/> implementations that use asynchronous polling logic to resolve the <see cref="Uri"/>.
2828 /// <para>
29- /// <see cref="AsyncResolver "/> adds a virtual <see cref="ResolveAsync"/> method. The resolver runs one asynchronous
29+ /// <see cref="PollingResolver "/> adds a virtual <see cref="ResolveAsync"/> method. The resolver runs one asynchronous
3030 /// resolve task at a time. Calling <see cref="Refresh()"/> on the resolver when a resolve task is already running has
3131 /// no effect.
3232 /// </para>
33+ /// <para>
34+ /// Note: Experimental API that can change or be removed without any prior notice.
35+ /// </para>
3336 /// </summary>
34- public abstract class AsyncResolver : Resolver
37+ public abstract class PollingResolver : Resolver
3538 {
3639 // Internal for testing
3740 internal Task _resolveTask = Task . CompletedTask ;
@@ -48,17 +51,17 @@ public abstract class AsyncResolver : Resolver
4851 protected Action < ResolverResult > Listener => _listener ! ;
4952
5053 /// <summary>
51- /// Initializes a new instance of the <see cref="AsyncResolver "/>.
54+ /// Initializes a new instance of the <see cref="PollingResolver "/>.
5255 /// </summary>
5356 /// <param name="loggerFactory">The logger factory.</param>
54- protected AsyncResolver ( ILoggerFactory loggerFactory )
57+ protected PollingResolver ( ILoggerFactory loggerFactory )
5558 {
5659 if ( loggerFactory == null )
5760 {
5861 throw new ArgumentNullException ( nameof ( loggerFactory ) ) ;
5962 }
6063
61- _logger = loggerFactory . CreateLogger < AsyncResolver > ( ) ;
64+ _logger = loggerFactory . CreateLogger < PollingResolver > ( ) ;
6265 }
6366
6467 /// <summary>
@@ -100,7 +103,8 @@ protected virtual void OnStarted()
100103 /// <summary>
101104 /// Refresh resolution. Can only be called after <see cref="Start(Action{ResolverResult})"/>.
102105 /// <para>
103- /// This is only a hint. Implementation takes it as a signal but may not start resolution.
106+ /// The resolver runs one asynchronous resolve task at a time. Calling <see cref="Refresh()"/> on the resolver when a
107+ /// resolve task is already running has no effect.
104108 /// </para>
105109 /// </summary>
106110 public sealed override void Refresh ( )
@@ -152,9 +156,6 @@ private async Task ResolveNowAsync(CancellationToken cancellationToken)
152156 /// Resolve the target <see cref="Uri"/>. Updated results are passed to the callback
153157 /// registered by <see cref="Start(Action{ResolverResult})"/>. Can only be called
154158 /// after the resolver has started.
155- /// <para>
156- /// This is only a hint. Implementation takes it as a signal but may not start resolution.
157- /// </para>
158159 /// </summary>
159160 /// <param name="cancellationToken">A cancellation token.</param>
160161 /// <returns>A task.</returns>
0 commit comments