g.smali
.class public final Lcom/imo/android/imoim/publicchannel/post/a/g;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field private final a:Ljava/util/Queue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Queue<",
"TT;>;"
}
.end annotation
.end field
.field private final b:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set<",
"TT;>;"
}
.end annotation
.end field
.field private final c:Ljava/util/concurrent/locks/ReentrantLock;
# direct methods
.method public constructor <init>()V
.registers 2
.line 15
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 17
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->a:Ljava/util/Queue;
.line 19
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
iput-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->b:Ljava/util/Set;
.line 20
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
iput-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
return-void
.end method
# virtual methods
.method public final a()I
.registers 3
.line 90
iget-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
.line 91
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 93
:try_start_5
iget-object v1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->a:Ljava/util/Queue;
invoke-interface {v1}, Ljava/util/Queue;->size()I
move-result v1
:try_end_b
.catchall {:try_start_5 .. :try_end_b} :catchall_f
.line 95
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return v1
:catchall_f
move-exception v1
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v1
.end method
.method public final a(I)Ljava/util/List;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.line 70
iget-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 71
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 74
:try_start_a
iget-object v1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->a:Ljava/util/Queue;
invoke-interface {v1}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v1
:goto_10
if-eqz v1, :cond_25
if-lez p1, :cond_25
.line 76
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 77
iget-object v2, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->b:Ljava/util/Set;
invoke-interface {v2, v1}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 78
iget-object v1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->a:Ljava/util/Queue;
invoke-interface {v1}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v1
:try_end_22
.catchall {:try_start_a .. :try_end_22} :catchall_2b
add-int/lit8 p1, p1, -0x1
goto :goto_10
.line 85
:cond_25
iget-object p1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return-object v0
:catchall_2b
move-exception p1
iget-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
goto :goto_33
:goto_32
throw p1
:goto_33
goto :goto_32
.end method
.method public final a(Ljava/util/Iterator;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Iterator<",
"TT;>;)V"
}
.end annotation
if-nez p1, :cond_3
return-void
.line 41
:cond_3
iget-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 43
:cond_8
:goto_8
:try_start_8
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_20
.line 44
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
.line 45
iget-object v1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->b:Ljava/util/Set;
invoke-interface {v1, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8
.line 46
iget-object v1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->a:Ljava/util/Queue;
invoke-interface {v1, v0}, Ljava/util/Queue;->add(Ljava/lang/Object;)Z
:try_end_1f
.catchall {:try_start_8 .. :try_end_1f} :catchall_26
goto :goto_8
.line 51
:cond_20
iget-object p1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return-void
:catchall_26
move-exception p1
iget-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
goto :goto_2e
:goto_2d
throw p1
:goto_2e
goto :goto_2d
.end method
.method public final b()V
.registers 3
.line 100
iget-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
.line 101
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 103
:try_start_5
iget-object v1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->a:Ljava/util/Queue;
invoke-interface {v1}, Ljava/util/Queue;->clear()V
.line 104
iget-object v1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->b:Ljava/util/Set;
invoke-interface {v1}, Ljava/util/Set;->clear()V
:try_end_f
.catchall {:try_start_5 .. :try_end_f} :catchall_13
.line 106
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return-void
:catchall_13
move-exception v1
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v1
.end method
.method public final c()Z
.registers 3
.line 113
iget-object v0, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->c:Ljava/util/concurrent/locks/ReentrantLock;
.line 114
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 116
:try_start_5
iget-object v1, p0, Lcom/imo/android/imoim/publicchannel/post/a/g;->a:Ljava/util/Queue;
invoke-interface {v1}, Ljava/util/Queue;->isEmpty()Z
move-result v1
:try_end_b
.catchall {:try_start_5 .. :try_end_b} :catchall_f
.line 118
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return v1
:catchall_f
move-exception v1
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v1
.end method