ObservableReplay.smali
.class public final Lio/reactivex/internal/operators/observable/ObservableReplay;
.super Lio/reactivex/observables/ConnectableObservable;
# interfaces
.implements Lio/reactivex/disposables/Disposable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/reactivex/internal/operators/observable/ObservableReplay$ReplaySource;,
Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayBufferSupplier;,
Lio/reactivex/internal/operators/observable/ObservableReplay$UnBoundedFactory;,
Lio/reactivex/internal/operators/observable/ObservableReplay$SizeBoundReplayBuffer;,
Lio/reactivex/internal/operators/observable/ObservableReplay$BoundedReplayBuffer;,
Lio/reactivex/internal/operators/observable/ObservableReplay$Node;,
Lio/reactivex/internal/operators/observable/ObservableReplay$UnboundedReplayBuffer;,
Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayBuffer;,
Lio/reactivex/internal/operators/observable/ObservableReplay$InnerDisposable;,
Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver;,
Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Lio/reactivex/observables/ConnectableObservable<",
"TT;>;",
"Ljava/lang/Object<",
"TT;>;",
"Lio/reactivex/disposables/Disposable;"
}
.end annotation
# static fields
.field static final j:Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;
# instance fields
.field final f:Lio/reactivex/ObservableSource;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/ObservableSource<",
"TT;>;"
}
.end annotation
.end field
.field final g:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver<",
"TT;>;>;"
}
.end annotation
.end field
.field final h:Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier<",
"TT;>;"
}
.end annotation
.end field
.field final i:Lio/reactivex/ObservableSource;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lio/reactivex/ObservableSource<",
"TT;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
new-instance v0, Lio/reactivex/internal/operators/observable/ObservableReplay$UnBoundedFactory;
invoke-direct {v0}, Lio/reactivex/internal/operators/observable/ObservableReplay$UnBoundedFactory;-><init>()V
sput-object v0, Lio/reactivex/internal/operators/observable/ObservableReplay;->j:Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;
return-void
.end method
.method private constructor <init>(Lio/reactivex/ObservableSource;Lio/reactivex/ObservableSource;Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/ObservableSource<",
"TT;>;",
"Lio/reactivex/ObservableSource<",
"TT;>;",
"Ljava/util/concurrent/atomic/AtomicReference<",
"Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver<",
"TT;>;>;",
"Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier<",
"TT;>;)V"
}
.end annotation
invoke-direct {p0}, Lio/reactivex/observables/ConnectableObservable;-><init>()V
iput-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->i:Lio/reactivex/ObservableSource;
iput-object p2, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->f:Lio/reactivex/ObservableSource;
iput-object p3, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->g:Ljava/util/concurrent/atomic/AtomicReference;
iput-object p4, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->h:Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;
return-void
.end method
.method public static k(Lio/reactivex/ObservableSource;I)Lio/reactivex/observables/ConnectableObservable;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lio/reactivex/ObservableSource<",
"TT;>;I)",
"Lio/reactivex/observables/ConnectableObservable<",
"TT;>;"
}
.end annotation
const v0, 0x7fffffff
if-ne p1, v0, :cond_a
invoke-static {p0}, Lio/reactivex/internal/operators/observable/ObservableReplay;->m(Lio/reactivex/ObservableSource;)Lio/reactivex/observables/ConnectableObservable;
move-result-object p0
return-object p0
:cond_a
new-instance v0, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayBufferSupplier;
invoke-direct {v0, p1}, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayBufferSupplier;-><init>(I)V
invoke-static {p0, v0}, Lio/reactivex/internal/operators/observable/ObservableReplay;->l(Lio/reactivex/ObservableSource;Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;)Lio/reactivex/observables/ConnectableObservable;
move-result-object p0
return-object p0
.end method
.method static l(Lio/reactivex/ObservableSource;Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;)Lio/reactivex/observables/ConnectableObservable;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lio/reactivex/ObservableSource<",
"TT;>;",
"Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier<",
"TT;>;)",
"Lio/reactivex/observables/ConnectableObservable<",
"TT;>;"
}
.end annotation
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
new-instance v1, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplaySource;
invoke-direct {v1, v0, p1}, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplaySource;-><init>(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;)V
new-instance v2, Lio/reactivex/internal/operators/observable/ObservableReplay;
invoke-direct {v2, v1, p0, v0, p1}, Lio/reactivex/internal/operators/observable/ObservableReplay;-><init>(Lio/reactivex/ObservableSource;Lio/reactivex/ObservableSource;Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;)V
invoke-static {v2}, Lio/reactivex/plugins/RxJavaPlugins;->l(Lio/reactivex/observables/ConnectableObservable;)Lio/reactivex/observables/ConnectableObservable;
move-result-object p0
return-object p0
.end method
.method public static m(Lio/reactivex/ObservableSource;)Lio/reactivex/observables/ConnectableObservable;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lio/reactivex/ObservableSource<",
"+TT;>;)",
"Lio/reactivex/observables/ConnectableObservable<",
"TT;>;"
}
.end annotation
sget-object v0, Lio/reactivex/internal/operators/observable/ObservableReplay;->j:Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;
invoke-static {p0, v0}, Lio/reactivex/internal/operators/observable/ObservableReplay;->l(Lio/reactivex/ObservableSource;Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;)Lio/reactivex/observables/ConnectableObservable;
move-result-object p0
return-object p0
.end method
# virtual methods
.method protected f(Lio/reactivex/Observer;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/Observer<",
"-TT;>;)V"
}
.end annotation
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->i:Lio/reactivex/ObservableSource;
invoke-interface {v0, p1}, Lio/reactivex/ObservableSource;->a(Lio/reactivex/Observer;)V
return-void
.end method
.method public g()V
.registers 3
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->g:Ljava/util/concurrent/atomic/AtomicReference;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
return-void
.end method
.method public i(Lio/reactivex/functions/Consumer;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lio/reactivex/functions/Consumer<",
"-",
"Lio/reactivex/disposables/Disposable;",
">;)V"
}
.end annotation
:goto_0
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->g:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver;
if-eqz v0, :cond_10
invoke-virtual {v0}, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver;->j()Z
move-result v1
if-eqz v1, :cond_25
:cond_10
iget-object v1, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->h:Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;
invoke-interface {v1}, Lio/reactivex/internal/operators/observable/ObservableReplay$BufferSupplier;->call()Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayBuffer;
move-result-object v1
new-instance v2, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver;
invoke-direct {v2, v1}, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver;-><init>(Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayBuffer;)V
iget-object v1, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->g:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v1, v0, v2}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_24
goto :goto_0
:cond_24
move-object v0, v2
:cond_25
iget-object v1, v0, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver;->i:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v1
const/4 v2, 0x1
const/4 v3, 0x0
if-nez v1, :cond_39
iget-object v1, v0, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver;->i:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1, v3, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v1
if-eqz v1, :cond_39
const/4 v1, 0x1
goto :goto_3a
:cond_39
const/4 v1, 0x0
:goto_3a
:try_start_3a
invoke-interface {p1, v0}, Lio/reactivex/functions/Consumer;->a(Ljava/lang/Object;)V
:try_end_3d
.catchall {:try_start_3a .. :try_end_3d} :catchall_45
if-eqz v1, :cond_44
iget-object p1, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->f:Lio/reactivex/ObservableSource;
invoke-interface {p1, v0}, Lio/reactivex/ObservableSource;->a(Lio/reactivex/Observer;)V
:cond_44
return-void
:catchall_45
move-exception p1
if-eqz v1, :cond_4d
iget-object v0, v0, Lio/reactivex/internal/operators/observable/ObservableReplay$ReplayObserver;->i:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0, v2, v3}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
:cond_4d
invoke-static {p1}, Lio/reactivex/exceptions/Exceptions;->b(Ljava/lang/Throwable;)V
invoke-static {p1}, Lio/reactivex/internal/util/ExceptionHelper;->a(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
move-result-object p1
throw p1
.end method
.method public j()Z
.registers 2
iget-object v0, p0, Lio/reactivex/internal/operators/observable/ObservableReplay;->g:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/reactivex/disposables/Disposable;
if-eqz v0, :cond_13
invoke-interface {v0}, Lio/reactivex/disposables/Disposable;->j()Z
move-result v0
if-eqz v0, :cond_11
goto :goto_13
:cond_11
const/4 v0, 0x0
goto :goto_14
:cond_13
:goto_13
const/4 v0, 0x1
:goto_14
return v0
.end method