Class ForwardingManagedChannel

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String authority()
      The authority of the destination this channel connects to.
      boolean awaitTermination​(long timeout, java.util.concurrent.TimeUnit unit)
      Waits for the channel to become terminated, giving up if the timeout is reached.
      void enterIdle()
      Invoking this method moves the channel into the IDLE state and triggers tear-down of the channel's name resolver and load balancer, while still allowing on-going RPCs on the channel to continue.
      ConnectivityState getState​(boolean requestConnection)
      Gets the current connectivity state.
      boolean isShutdown()
      Returns whether the channel is shutdown.
      boolean isTerminated()
      Returns whether the channel is terminated.
      <RequestT,​ResponseT>
      ClientCall<RequestT,​ResponseT>
      newCall​(MethodDescriptor<RequestT,​ResponseT> methodDescriptor, CallOptions callOptions)
      Create a ClientCall to the remote operation specified by the given MethodDescriptor.
      void notifyWhenStateChanged​(ConnectivityState source, java.lang.Runnable callback)
      Registers a one-off callback that will be run if the connectivity state of the channel diverges from the given source, which is typically what has just been returned by ManagedChannel.getState(boolean).
      void resetConnectBackoff()
      For subchannels that are in TRANSIENT_FAILURE state, short-circuit the backoff timer and make them reconnect immediately.
      ManagedChannel shutdown()
      Initiates an orderly shutdown in which preexisting calls continue but new calls are immediately cancelled.
      ManagedChannel shutdownNow()
      Initiates a forceful shutdown in which preexisting and new calls are cancelled.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ForwardingManagedChannel

        ForwardingManagedChannel​(ManagedChannel delegate)
    • Method Detail

      • shutdown

        public ManagedChannel shutdown()
        Description copied from class: ManagedChannel
        Initiates an orderly shutdown in which preexisting calls continue but new calls are immediately cancelled.
        Specified by:
        shutdown in class ManagedChannel
        Returns:
        this
      • awaitTermination

        public boolean awaitTermination​(long timeout,
                                        java.util.concurrent.TimeUnit unit)
                                 throws java.lang.InterruptedException
        Description copied from class: ManagedChannel
        Waits for the channel to become terminated, giving up if the timeout is reached.
        Specified by:
        awaitTermination in class ManagedChannel
        Returns:
        whether the channel is terminated, as would be done by ManagedChannel.isTerminated().
        Throws:
        java.lang.InterruptedException
      • authority

        public java.lang.String authority()
        Description copied from class: Channel
        The authority of the destination this channel connects to. Typically this is in the format host:port.
        Specified by:
        authority in class Channel
      • getState

        public ConnectivityState getState​(boolean requestConnection)
        Description copied from class: ManagedChannel
        Gets the current connectivity state. Note the result may soon become outdated.

        Note that the core library did not provide an implementation of this method until v1.6.1.

        Overrides:
        getState in class ManagedChannel
        Parameters:
        requestConnection - if true, the channel will try to make a connection if it is currently IDLE
      • notifyWhenStateChanged

        public void notifyWhenStateChanged​(ConnectivityState source,
                                           java.lang.Runnable callback)
        Description copied from class: ManagedChannel
        Registers a one-off callback that will be run if the connectivity state of the channel diverges from the given source, which is typically what has just been returned by ManagedChannel.getState(boolean). If the states are already different, the callback will be called immediately. The callback is run in the same executor that runs Call listeners.

        There is an inherent race between the notification to callback and any call to getState(). There is a similar race between getState() and a call to notifyWhenStateChanged(). The state can change during those races, so there is not a way to see every state transition. "Transitions" to the same state are possible, because intermediate states may not have been observed. The API is only reliable in tracking the current state.

        Note that the core library did not provide an implementation of this method until v1.6.1.

        Overrides:
        notifyWhenStateChanged in class ManagedChannel
        Parameters:
        source - the assumed current state, typically just returned by ManagedChannel.getState(boolean)
        callback - the one-off callback
      • resetConnectBackoff

        public void resetConnectBackoff()
        Description copied from class: ManagedChannel
        For subchannels that are in TRANSIENT_FAILURE state, short-circuit the backoff timer and make them reconnect immediately. May also attempt to invoke NameResolver.refresh().

        This is primarily intended for Android users, where the network may experience frequent temporary drops. Rather than waiting for gRPC's name resolution and reconnect timers to elapse before reconnecting, the app may use this method as a mechanism to notify gRPC that the network is now available and a reconnection attempt may occur immediately.

        No-op if not supported by the implementation.

        Overrides:
        resetConnectBackoff in class ManagedChannel
      • enterIdle

        public void enterIdle()
        Description copied from class: ManagedChannel
        Invoking this method moves the channel into the IDLE state and triggers tear-down of the channel's name resolver and load balancer, while still allowing on-going RPCs on the channel to continue. New RPCs on the channel will trigger creation of a new connection.

        This is primarily intended for Android users when a device is transitioning from a cellular to a wifi connection. The OS will issue a notification that a new network (wifi) has been made the default, but for approximately 30 seconds the device will maintain both the cellular and wifi connections. Apps may invoke this method to ensure that new RPCs are created using the new default wifi network, rather than the soon-to-be-disconnected cellular network.

        No-op if not supported by implementation.

        Overrides:
        enterIdle in class ManagedChannel
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object