Class OrcaOobUtil.OrcaReportingHelper

java.lang.Object
io.grpc.LoadBalancer.Helper
io.grpc.util.ForwardingLoadBalancerHelper
io.grpc.xds.orca.OrcaOobUtil.OrcaReportingHelper
Enclosing class:
OrcaOobUtil

static final class OrcaOobUtil.OrcaReportingHelper extends io.grpc.util.ForwardingLoadBalancerHelper
An OrcaOobUtil.OrcaReportingHelper wraps a delegated LoadBalancer.Helper with additional functionality to manage RPCs for out-of-band ORCA reporting for each backend it establishes connection to. Subchannels created through it will retrieve ORCA load reports if the server supports it.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private final class 
    An OrcaOobUtil.OrcaReportingHelper.OrcaReportingState is a client of ORCA service running on a single backend.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final io.grpc.internal.BackoffPolicy.Provider
     
    private final io.grpc.LoadBalancer.Helper
     
    private final com.google.common.base.Supplier<com.google.common.base.Stopwatch>
     
    private final io.grpc.SynchronizationContext
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    OrcaReportingHelper(io.grpc.LoadBalancer.Helper delegate, io.grpc.internal.BackoffPolicy.Provider backoffPolicyProvider, com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    io.grpc.LoadBalancer.Subchannel
    createSubchannel(io.grpc.LoadBalancer.CreateSubchannelArgs args)
     
    protected io.grpc.LoadBalancer.Helper
     

    Methods inherited from class io.grpc.util.ForwardingLoadBalancerHelper

    createOobChannel, createOobChannel, createResolvingOobChannel, createResolvingOobChannelBuilder, createResolvingOobChannelBuilder, getAuthority, getChannelCredentials, getChannelLogger, getChannelTarget, getMetricRecorder, getNameResolverArgs, getNameResolverRegistry, getScheduledExecutorService, getSynchronizationContext, getUnsafeChannelCredentials, ignoreRefreshNameResolutionCheck, refreshNameResolution, toString, updateBalancingState, updateOobChannelAddresses, updateOobChannelAddresses

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • delegate

      private final io.grpc.LoadBalancer.Helper delegate
    • syncContext

      private final io.grpc.SynchronizationContext syncContext
    • backoffPolicyProvider

      private final io.grpc.internal.BackoffPolicy.Provider backoffPolicyProvider
    • stopwatchSupplier

      private final com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier
  • Constructor Details

    • OrcaReportingHelper

      OrcaReportingHelper(io.grpc.LoadBalancer.Helper delegate, io.grpc.internal.BackoffPolicy.Provider backoffPolicyProvider, com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier)
  • Method Details

    • delegate

      protected io.grpc.LoadBalancer.Helper delegate()
      Specified by:
      delegate in class io.grpc.util.ForwardingLoadBalancerHelper
    • createSubchannel

      public io.grpc.LoadBalancer.Subchannel createSubchannel(io.grpc.LoadBalancer.CreateSubchannelArgs args)
      Overrides:
      createSubchannel in class io.grpc.util.ForwardingLoadBalancerHelper