public interface com.google.common.util.concurrent.Service
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: com.google.common.util.concurrent.Service
  super_class: java.lang.Object
{
  public abstract com.google.common.util.concurrent.Service startAsync();
    descriptor: ()Lcom/google/common/util/concurrent/Service;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()

  public abstract boolean isRunning();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract com.google.common.util.concurrent.Service$State state();
    descriptor: ()Lcom/google/common/util/concurrent/Service$State;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract com.google.common.util.concurrent.Service stopAsync();
    descriptor: ()Lcom/google/common/util/concurrent/Service;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()

  public abstract void awaitRunning();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void awaitRunning(java.time.Duration);
    descriptor: (Ljava/time/Duration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.util.concurrent.Service this
        start local 1 // java.time.Duration timeout
         0: .line 112
            aload 0 /* this */
            aload 1 /* timeout */
            invokestatic com.google.common.util.concurrent.Internal.toNanosSaturated:(Ljava/time/Duration;)J
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface com.google.common.util.concurrent.Service.awaitRunning:(JLjava/util/concurrent/TimeUnit;)V
         1: .line 113
            return
        end local 1 // java.time.Duration timeout
        end local 0 // com.google.common.util.concurrent.Service this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/google/common/util/concurrent/Service;
            0    2     1  timeout  Ljava/time/Duration;
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
         Name  Flags
      timeout  

  public abstract void awaitRunning(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  public abstract void awaitTerminated();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void awaitTerminated(java.time.Duration);
    descriptor: (Ljava/time/Duration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.util.concurrent.Service this
        start local 1 // java.time.Duration timeout
         0: .line 148
            aload 0 /* this */
            aload 1 /* timeout */
            invokestatic com.google.common.util.concurrent.Internal.toNanosSaturated:(Ljava/time/Duration;)J
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface com.google.common.util.concurrent.Service.awaitTerminated:(JLjava/util/concurrent/TimeUnit;)V
         1: .line 149
            return
        end local 1 // java.time.Duration timeout
        end local 0 // com.google.common.util.concurrent.Service this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/google/common/util/concurrent/Service;
            0    2     1  timeout  Ljava/time/Duration;
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
         Name  Flags
      timeout  

  public abstract void awaitTerminated(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  public abstract java.lang.Throwable failureCause();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void addListener(com.google.common.util.concurrent.Service$Listener, java.util.concurrent.Executor);
    descriptor: (Lcom/google/common/util/concurrent/Service$Listener;Ljava/util/concurrent/Executor;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      listener  
      executor  
}
SourceFile: "Service.java"
NestMembers:
  com.google.common.util.concurrent.Service$Listener  com.google.common.util.concurrent.Service$State  com.google.common.util.concurrent.Service$State$1  com.google.common.util.concurrent.Service$State$2  com.google.common.util.concurrent.Service$State$3  com.google.common.util.concurrent.Service$State$4  com.google.common.util.concurrent.Service$State$5  com.google.common.util.concurrent.Service$State$6
InnerClasses:
  public abstract Listener = com.google.common.util.concurrent.Service$Listener of com.google.common.util.concurrent.Service
  public abstract State = com.google.common.util.concurrent.Service$State of com.google.common.util.concurrent.Service
    RuntimeVisibleAnnotations: 
      com.google.errorprone.annotations.DoNotMock(value = "Create an AbstractIdleService")
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()