InUseStateAggregator.smali
.class abstract Lio/grpc/internal/InUseStateAggregator;
.super Ljava/lang/Object;
.source "InUseStateAggregator.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field private final inUseObjects:Ljava/util/HashSet;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashSet<",
"TT;>;"
}
.end annotation
.end field
# direct methods
.method constructor <init>()V
.registers 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
iput-object v0, p0, Lio/grpc/internal/InUseStateAggregator;->inUseObjects:Ljava/util/HashSet;
return-void
.end method
# virtual methods
.method abstract getLock()Ljava/lang/Object;
.end method
.method abstract handleInUse()V
.end method
.method abstract handleNotInUse()V
.end method
.method final isInUse()Z
.registers 3
.line 1
invoke-virtual {p0}, Lio/grpc/internal/InUseStateAggregator;->getLock()Ljava/lang/Object;
move-result-object v0
monitor-enter v0
.line 2
:try_start_5
iget-object v1, p0, Lio/grpc/internal/InUseStateAggregator;->inUseObjects:Ljava/util/HashSet;
invoke-virtual {v1}, Ljava/util/HashSet;->isEmpty()Z
move-result v1
if-nez v1, :cond_f
const/4 v1, 0x1
goto :goto_10
:cond_f
const/4 v1, 0x0
:goto_10
monitor-exit v0
return v1
:catchall_12
move-exception v1
.line 3
monitor-exit v0
:try_end_14
.catchall {:try_start_5 .. :try_end_14} :catchall_12
throw v1
.end method
.method final updateObjectInUse(Ljava/lang/Object;Z)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;Z)V"
}
.end annotation
.line 1
invoke-virtual {p0}, Lio/grpc/internal/InUseStateAggregator;->getLock()Ljava/lang/Object;
move-result-object v0
monitor-enter v0
.line 2
:try_start_5
iget-object v1, p0, Lio/grpc/internal/InUseStateAggregator;->inUseObjects:Ljava/util/HashSet;
invoke-virtual {v1}, Ljava/util/HashSet;->size()I
move-result v1
if-eqz p2, :cond_18
.line 3
iget-object p2, p0, Lio/grpc/internal/InUseStateAggregator;->inUseObjects:Ljava/util/HashSet;
invoke-virtual {p2, p1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
if-nez v1, :cond_26
.line 4
invoke-virtual {p0}, Lio/grpc/internal/InUseStateAggregator;->handleInUse()V
goto :goto_26
.line 5
:cond_18
iget-object p2, p0, Lio/grpc/internal/InUseStateAggregator;->inUseObjects:Ljava/util/HashSet;
invoke-virtual {p2, p1}, Ljava/util/HashSet;->remove(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_26
const/4 p1, 0x1
if-ne v1, p1, :cond_26
.line 6
invoke-virtual {p0}, Lio/grpc/internal/InUseStateAggregator;->handleNotInUse()V
.line 7
:cond_26
:goto_26
monitor-exit v0
return-void
:catchall_28
move-exception p1
monitor-exit v0
:try_end_2a
.catchall {:try_start_5 .. :try_end_2a} :catchall_28
throw p1
.end method