AsyncConsumerMap.smali
.class public Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;
.super Ljava/lang/Object;
.source "AsyncConsumerMap.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;,
Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$ConsumerCallback;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field private final mCallback:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$ConsumerCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$ConsumerCallback",
"<TK;TV;>;"
}
.end annotation
.end field
.field private mConsumerThread:Ljava/lang/Thread;
.field private final mKeyQueue:Ljava/util/Queue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Queue",
"<TK;>;"
}
.end annotation
.end field
.field private final mLock:Ljava/lang/Object;
.field private final mProductMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<TK;TV;>;"
}
.end annotation
.end field
.field private final mWaitTime:I
# direct methods
.method private constructor <init>(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder",
"<TK;TV;>;)V"
}
.end annotation
.prologue
.line 107
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 113
const/4 v0, 0x0
iput-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mConsumerThread:Ljava/lang/Thread;
.line 114
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mLock:Ljava/lang/Object;
.line 115
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mKeyQueue:Ljava/util/Queue;
.line 116
new-instance v0, Lcom/cleanmaster/bitloader/base/ArrayMap;
invoke-direct {v0}, Lcom/cleanmaster/bitloader/base/ArrayMap;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mProductMap:Ljava/util/Map;
.line 108
# getter for: Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;->mWaitTime:I
invoke-static {p1}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;->access$700(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;)I
move-result v0
iput v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mWaitTime:I
.line 109
# getter for: Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;->mCallback:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$ConsumerCallback;
invoke-static {p1}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;->access$800(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;)Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$ConsumerCallback;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mCallback:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$ConsumerCallback;
.line 110
return-void
.end method
.method synthetic constructor <init>(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$1;)V
.registers 3
.prologue
.line 11
invoke-direct {p0, p1}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;-><init>(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$Builder;)V
return-void
.end method
.method static synthetic access$100(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;)Ljava/lang/Object;
.registers 2
.prologue
.line 11
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mLock:Ljava/lang/Object;
return-object v0
.end method
.method static synthetic access$200(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;)Ljava/util/Queue;
.registers 2
.prologue
.line 11
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mKeyQueue:Ljava/util/Queue;
return-object v0
.end method
.method static synthetic access$300(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;)I
.registers 2
.prologue
.line 11
iget v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mWaitTime:I
return v0
.end method
.method static synthetic access$402(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;Ljava/lang/Thread;)Ljava/lang/Thread;
.registers 2
.prologue
.line 11
iput-object p1, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mConsumerThread:Ljava/lang/Thread;
return-object p1
.end method
.method static synthetic access$500(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;)Ljava/util/Map;
.registers 2
.prologue
.line 11
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mProductMap:Ljava/util/Map;
return-object v0
.end method
.method static synthetic access$600(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;)Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$ConsumerCallback;
.registers 2
.prologue
.line 11
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mCallback:Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$ConsumerCallback;
return-object v0
.end method
.method private createThread()V
.registers 2
.prologue
.line 70
new-instance v0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$1;
invoke-direct {v0, p0}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap$1;-><init>(Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;)V
iput-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mConsumerThread:Ljava/lang/Thread;
.line 104
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mConsumerThread:Ljava/lang/Thread;
invoke-virtual {v0}, Ljava/lang/Thread;->start()V
.line 105
return-void
.end method
# virtual methods
.method public addProduct(Ljava/lang/Object;Ljava/lang/Object;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(TK;TV;)V"
}
.end annotation
.prologue
.line 43
if-eqz p1, :cond_4
if-nez p2, :cond_5
.line 58
:cond_4
:goto_4
return-void
.line 47
:cond_5
iget-object v1, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mLock:Ljava/lang/Object;
monitor-enter v1
.line 48
:try_start_8
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mKeyQueue:Ljava/util/Queue;
invoke-interface {v0, p1}, Ljava/util/Queue;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_15
.line 49
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mKeyQueue:Ljava/util/Queue;
invoke-interface {v0, p1}, Ljava/util/Queue;->offer(Ljava/lang/Object;)Z
.line 51
:cond_15
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mProductMap:Ljava/util/Map;
invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 52
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mConsumerThread:Ljava/lang/Thread;
if-nez v0, :cond_21
.line 53
invoke-direct {p0}, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->createThread()V
.line 56
:cond_21
iget-object v0, p0, Lcom/cleanmaster/base/util/concurrent/AsyncConsumerMap;->mLock:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->notify()V
.line 57
monitor-exit v1
goto :goto_4
:catchall_28
move-exception v0
monitor-exit v1
:try_end_2a
.catchall {:try_start_8 .. :try_end_2a} :catchall_28
throw v0
.end method