BlockingOperatorToFuture.smali
.class public final Lrx/internal/operators/BlockingOperatorToFuture;
.super Ljava/lang/Object;
.source "BlockingOperatorToFuture.java"
# direct methods
.method private constructor <init>()V
.registers 3
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "No instances!"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static toFuture(Lrx/Observable;)Ljava/util/concurrent/Future;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lrx/Observable<",
"+TT;>;)",
"Ljava/util/concurrent/Future<",
"TT;>;"
}
.end annotation
.line 1
new-instance v0, Ljava/util/concurrent/CountDownLatch;
const/4 v1, 0x1
invoke-direct {v0, v1}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
.line 2
new-instance v1, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
.line 3
new-instance v2, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v2}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
.line 4
invoke-virtual {p0}, Lrx/Observable;->single()Lrx/Observable;
move-result-object p0
new-instance v3, Lrx/internal/operators/BlockingOperatorToFuture$1;
invoke-direct {v3, v0, v2, v1}, Lrx/internal/operators/BlockingOperatorToFuture$1;-><init>(Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)V
invoke-virtual {p0, v3}, Lrx/Observable;->subscribe(Lrx/Subscriber;)Lrx/Subscription;
move-result-object p0
.line 5
new-instance v3, Lrx/internal/operators/BlockingOperatorToFuture$2;
invoke-direct {v3, v0, p0, v2, v1}, Lrx/internal/operators/BlockingOperatorToFuture$2;-><init>(Ljava/util/concurrent/CountDownLatch;Lrx/Subscription;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)V
return-object v3
.end method