c.smali
.class public final Lrx/internal/util/c;
.super Ljava/lang/Object;
.source "RxRingBuffer.java"
# interfaces
.implements Lrx/p;
# static fields
.field public static final SIZE:I
# instance fields
.field private volatile cck:Ljava/lang/Object;
.field private queue:Ljava/util/Queue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Queue",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 6
.prologue
.line 243
const/16 v0, 0x80
.line 246
invoke-static {}, Lrx/internal/util/b;->isAndroid()Z
move-result v1
if-eqz v1, :cond_a
.line 247
const/16 v0, 0x10
.line 251
:cond_a
const-string v1, "rx.ring-buffer.size"
invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 252
if-eqz v1, :cond_16
.line 254
:try_start_12
invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
:try_end_15
.catch Ljava/lang/NumberFormatException; {:try_start_12 .. :try_end_15} :catch_19
move-result v0
.line 260
:cond_16
:goto_16
sput v0, Lrx/internal/util/c;->SIZE:I
.line 261
return-void
.line 255
:catch_19
move-exception v2
.line 256
sget-object v3, Ljava/lang/System;->err:Ljava/io/PrintStream;
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Failed to set \'rx.buffer.size\' with value "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v4, " => "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v2}, Ljava/lang/NumberFormatException;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto :goto_16
.end method
.method constructor <init>()V
.registers 3
.prologue
.line 300
new-instance v0, Lrx/internal/util/atomic/b;
sget v1, Lrx/internal/util/c;->SIZE:I
invoke-direct {v0, v1}, Lrx/internal/util/atomic/b;-><init>(I)V
invoke-direct {p0, v0}, Lrx/internal/util/c;-><init>(Ljava/util/Queue;)V
.line 301
return-void
.end method
.method private constructor <init>(I)V
.registers 3
.prologue
.line 285
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 286
new-instance v0, Lrx/internal/util/a/d;
invoke-direct {v0, p1}, Lrx/internal/util/a/d;-><init>(I)V
iput-object v0, p0, Lrx/internal/util/c;->queue:Ljava/util/Queue;
.line 288
return-void
.end method
.method private constructor <init>(Ljava/util/Queue;)V
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Queue",
"<",
"Ljava/lang/Object;",
">;)V"
}
.end annotation
.prologue
.line 280
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 281
iput-object p1, p0, Lrx/internal/util/c;->queue:Ljava/util/Queue;
.line 283
return-void
.end method
.method public static Ta()Lrx/internal/util/c;
.registers 2
.prologue
.line 265
invoke-static {}, Lrx/internal/util/a/k;->Te()Z
move-result v0
if-eqz v0, :cond_e
.line 266
new-instance v0, Lrx/internal/util/c;
sget v1, Lrx/internal/util/c;->SIZE:I
invoke-direct {v0, v1}, Lrx/internal/util/c;-><init>(I)V
.line 268
:goto_d
return-object v0
:cond_e
new-instance v0, Lrx/internal/util/c;
invoke-direct {v0}, Lrx/internal/util/c;-><init>()V
goto :goto_d
.end method
# virtual methods
.method public final isEmpty()Z
.registers 2
.prologue
.line 360
iget-object v0, p0, Lrx/internal/util/c;->queue:Ljava/util/Queue;
.line 361
if-eqz v0, :cond_a
invoke-interface {v0}, Ljava/util/Queue;->isEmpty()Z
move-result v0
if-eqz v0, :cond_c
:cond_a
const/4 v0, 0x1
:goto_b
return v0
:cond_c
const/4 v0, 0x0
goto :goto_b
.end method
.method public final isUnsubscribed()Z
.registers 2
.prologue
.line 424
iget-object v0, p0, Lrx/internal/util/c;->queue:Ljava/util/Queue;
if-nez v0, :cond_6
const/4 v0, 0x1
:goto_5
return v0
:cond_6
const/4 v0, 0x0
goto :goto_5
.end method
.method public final onNext(Ljava/lang/Object;)V
.registers 7
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 310
.line 312
monitor-enter p0
.line 313
:try_start_3
iget-object v2, p0, Lrx/internal/util/c;->queue:Ljava/util/Queue;
.line 314
if-eqz v2, :cond_1e
.line 315
invoke-static {p1}, Lrx/internal/operators/NotificationLite;->next(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
invoke-interface {v2, v3}, Ljava/util/Queue;->offer(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_1c
.line 319
:goto_11
monitor-exit p0
:try_end_12
.catchall {:try_start_3 .. :try_end_12} :catchall_22
.line 321
if-eqz v1, :cond_25
.line 322
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "This instance has been unsubscribed and the queue is no longer usable."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1c
move v0, v1
.line 315
goto :goto_11
:cond_1e
move v4, v1
move v1, v0
move v0, v4
.line 317
goto :goto_11
.line 319
:catchall_22
move-exception v0
:try_start_23
monitor-exit p0
:try_end_24
.catchall {:try_start_23 .. :try_end_24} :catchall_22
throw v0
.line 324
:cond_25
if-eqz v0, :cond_2d
.line 325
new-instance v0, Lrx/exceptions/MissingBackpressureException;
invoke-direct {v0}, Lrx/exceptions/MissingBackpressureException;-><init>()V
throw v0
.line 327
:cond_2d
return-void
.end method
.method public final poll()Ljava/lang/Object;
.registers 3
.prologue
.line 366
monitor-enter p0
.line 367
:try_start_1
iget-object v0, p0, Lrx/internal/util/c;->queue:Ljava/util/Queue;
.line 368
if-nez v0, :cond_8
.line 370
const/4 v0, 0x0
monitor-exit p0
.line 381
:goto_7
return-object v0
.line 372
:cond_8
invoke-interface {v0}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v0
.line 374
iget-object v1, p0, Lrx/internal/util/c;->cck:Ljava/lang/Object;
.line 380
monitor-exit p0
goto :goto_7
:catchall_10
move-exception v0
monitor-exit p0
:try_end_12
.catchall {:try_start_1 .. :try_end_12} :catchall_10
throw v0
.end method
.method public final declared-synchronized release()V
.registers 1
.prologue
.line 292
monitor-enter p0
monitor-exit p0
return-void
.end method
.method public final unsubscribe()V
.registers 1
.prologue
.line 296
invoke-virtual {p0}, Lrx/internal/util/c;->release()V
.line 297
return-void
.end method