public interface io.vertx.circuitbreaker.CircuitBreaker
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: io.vertx.circuitbreaker.CircuitBreaker
  super_class: java.lang.Object
{
  public static io.vertx.circuitbreaker.CircuitBreaker create(java.lang.String, io.vertx.core.Vertx, io.vertx.circuitbreaker.CircuitBreakerOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Vertx;Lio/vertx/circuitbreaker/CircuitBreakerOptions;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.circuitbreaker.CircuitBreakerOptions options
         0: .line 48
            new io.vertx.circuitbreaker.impl.CircuitBreakerImpl
            dup
            aload 0 /* name */
            aload 1 /* vertx */
            aload 2 /* options */
            ifnonnull 1
            new io.vertx.circuitbreaker.CircuitBreakerOptions
            dup
            invokespecial io.vertx.circuitbreaker.CircuitBreakerOptions.<init>:()V
            goto 2
      StackMap locals: java.lang.String io.vertx.core.Vertx io.vertx.circuitbreaker.CircuitBreakerOptions
      StackMap stack: new 0 new 0 java.lang.String io.vertx.core.Vertx
         1: aload 2 /* options */
      StackMap locals: java.lang.String io.vertx.core.Vertx io.vertx.circuitbreaker.CircuitBreakerOptions
      StackMap stack: new 0 new 0 java.lang.String io.vertx.core.Vertx io.vertx.circuitbreaker.CircuitBreakerOptions
         2: invokespecial io.vertx.circuitbreaker.impl.CircuitBreakerImpl.<init>:(Ljava/lang/String;Lio/vertx/core/Vertx;Lio/vertx/circuitbreaker/CircuitBreakerOptions;)V
            areturn
        end local 2 // io.vertx.circuitbreaker.CircuitBreakerOptions options
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     name  Ljava/lang/String;
            0    3     1    vertx  Lio/vertx/core/Vertx;
            0    3     2  options  Lio/vertx/circuitbreaker/CircuitBreakerOptions;
    MethodParameters:
         Name  Flags
      name     
      vertx    
      options  

  public static io.vertx.circuitbreaker.CircuitBreaker create(java.lang.String, io.vertx.core.Vertx);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Vertx;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // io.vertx.core.Vertx vertx
         0: .line 59
            new io.vertx.circuitbreaker.impl.CircuitBreakerImpl
            dup
            aload 0 /* name */
            aload 1 /* vertx */
            new io.vertx.circuitbreaker.CircuitBreakerOptions
            dup
            invokespecial io.vertx.circuitbreaker.CircuitBreakerOptions.<init>:()V
            invokespecial io.vertx.circuitbreaker.impl.CircuitBreakerImpl.<init>:(Ljava/lang/String;Lio/vertx/core/Vertx;Lio/vertx/circuitbreaker/CircuitBreakerOptions;)V
            areturn
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   name  Ljava/lang/String;
            0    1     1  vertx  Lio/vertx/core/Vertx;
    MethodParameters:
       Name  Flags
      name   
      vertx  

  public abstract io.vertx.circuitbreaker.CircuitBreaker close();
    descriptor: ()Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()

  public abstract io.vertx.circuitbreaker.CircuitBreaker openHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
         Name  Flags
      handler  

  public abstract io.vertx.circuitbreaker.CircuitBreaker halfOpenHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
         Name  Flags
      handler  

  public abstract io.vertx.circuitbreaker.CircuitBreaker closeHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
         Name  Flags
      handler  

  public abstract <T> io.vertx.core.Future<T> executeWithFallback(io.vertx.core.Handler<io.vertx.core.Promise<T>>, java.util.function.Function<java.lang.Throwable, T>);
    descriptor: (Lio/vertx/core/Handler;Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
          Name  Flags
      command   
      fallback  

  public <T> void executeWithFallback(io.vertx.core.Handler<io.vertx.core.Promise<T>>, java.util.function.Function<java.lang.Throwable, T>, io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>);
    descriptor: (Lio/vertx/core/Handler;Ljava/util/function/Function;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.circuitbreaker.CircuitBreaker this
        start local 1 // io.vertx.core.Handler command
        start local 2 // java.util.function.Function fallback
        start local 3 // io.vertx.core.Handler handler
         0: .line 130
            aload 0 /* this */
            aload 1 /* command */
            aload 2 /* fallback */
            invokeinterface io.vertx.circuitbreaker.CircuitBreaker.executeWithFallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lio/vertx/core/Future;
            astore 4 /* fut */
        start local 4 // io.vertx.core.Future fut
         1: .line 131
            aload 4 /* fut */
            aload 3 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 132
            return
        end local 4 // io.vertx.core.Future fut
        end local 3 // io.vertx.core.Handler handler
        end local 2 // java.util.function.Function fallback
        end local 1 // io.vertx.core.Handler command
        end local 0 // io.vertx.circuitbreaker.CircuitBreaker this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/vertx/circuitbreaker/CircuitBreaker;
            0    3     1   command  Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
            0    3     2  fallback  Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;
            0    3     3   handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
            1    3     4       fut  Lio/vertx/core/Future<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;)V
    MethodParameters:
          Name  Flags
      command   
      fallback  
      handler   

  public abstract <T> io.vertx.core.Future<T> execute(io.vertx.core.Handler<io.vertx.core.Promise<T>>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
         Name  Flags
      command  

  public <T> void execute(io.vertx.core.Handler<io.vertx.core.Promise<T>>, io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.circuitbreaker.CircuitBreaker this
        start local 1 // io.vertx.core.Handler command
        start local 2 // io.vertx.core.Handler handler
         0: .line 153
            aload 0 /* this */
            aload 1 /* command */
            invokeinterface io.vertx.circuitbreaker.CircuitBreaker.execute:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 154
            aload 3 /* fut */
            aload 2 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 155
            return
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.Handler command
        end local 0 // io.vertx.circuitbreaker.CircuitBreaker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/circuitbreaker/CircuitBreaker;
            0    3     1  command  Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
            0    3     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
            1    3     3      fut  Lio/vertx/core/Future<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;)V
    MethodParameters:
         Name  Flags
      command  
      handler  

  public abstract <T> io.vertx.circuitbreaker.CircuitBreaker executeAndReport(io.vertx.core.Promise<T>, io.vertx.core.Handler<io.vertx.core.Promise<T>>);
    descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/Handler;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Promise<TT;>;Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
               Name  Flags
      resultPromise  
      command        

  public abstract <T> io.vertx.circuitbreaker.CircuitBreaker executeAndReportWithFallback(io.vertx.core.Promise<T>, io.vertx.core.Handler<io.vertx.core.Promise<T>>, java.util.function.Function<java.lang.Throwable, T>);
    descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/Handler;Ljava/util/function/Function;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Promise<TT;>;Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
               Name  Flags
      resultPromise  
      command        
      fallback       

  public abstract <T> io.vertx.circuitbreaker.CircuitBreaker fallback(java.util.function.Function<java.lang.Throwable, T>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <T:Ljava/lang/Object;>(Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
         Name  Flags
      handler  

  public abstract io.vertx.circuitbreaker.CircuitBreaker reset();
    descriptor: ()Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()

  public abstract io.vertx.circuitbreaker.CircuitBreaker open();
    descriptor: ()Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()

  public abstract io.vertx.circuitbreaker.CircuitBreakerState state();
    descriptor: ()Lio/vertx/circuitbreaker/CircuitBreakerState;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract long failureCount();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.CacheReturn()

  public abstract io.vertx.circuitbreaker.CircuitBreaker retryPolicy(java.util.function.Function<java.lang.Integer, java.lang.Long>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/circuitbreaker/CircuitBreaker;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/util/function/Function<Ljava/lang/Integer;Ljava/lang/Long;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
             Name  Flags
      retryPolicy  
}
SourceFile: "CircuitBreaker.java"
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.VertxGen()