Class KeepAliveManager

java.lang.Object
io.grpc.internal.KeepAliveManager

public class KeepAliveManager extends Object
Manages keepalive pings.
  • Field Details

    • MIN_KEEPALIVE_TIME_NANOS

      private static final long MIN_KEEPALIVE_TIME_NANOS
    • MIN_KEEPALIVE_TIMEOUT_NANOS

      private static final long MIN_KEEPALIVE_TIMEOUT_NANOS
    • scheduler

      private final ScheduledExecutorService scheduler
    • stopwatch

      private final com.google.common.base.Stopwatch stopwatch
    • keepAlivePinger

      private final KeepAliveManager.KeepAlivePinger keepAlivePinger
    • keepAliveDuringTransportIdle

      private final boolean keepAliveDuringTransportIdle
    • state

      private KeepAliveManager.State state
    • shutdownFuture

      private ScheduledFuture<?> shutdownFuture
    • pingFuture

      private ScheduledFuture<?> pingFuture
    • shutdown

      private final Runnable shutdown
    • sendPing

      private final Runnable sendPing
    • keepAliveTimeInNanos

      private final long keepAliveTimeInNanos
    • keepAliveTimeoutInNanos

      private final long keepAliveTimeoutInNanos
  • Constructor Details

  • Method Details

    • onTransportStarted

      public void onTransportStarted()
      Start keepalive monitoring.
    • onDataReceived

      public void onDataReceived()
      Transport has received some data so that we can delay sending keepalives.
    • onTransportActive

      public void onTransportActive()
      Transport has active streams. Start sending keepalives if necessary.
    • onTransportIdle

      public void onTransportIdle()
      Transport has finished all streams.
    • onTransportTermination

      public void onTransportTermination()
      Transport is being terminated. We no longer need to do keepalives.
    • clampKeepAliveTimeInNanos

      public static long clampKeepAliveTimeInNanos(long keepAliveTimeInNanos)
      Bumps keepalive time to 10 seconds if the specified value was smaller than that.
    • clampKeepAliveTimeoutInNanos

      public static long clampKeepAliveTimeoutInNanos(long keepAliveTimeoutInNanos)
      Bumps keepalive timeout to 10 milliseconds if the specified value was smaller than that.