TaskQueue.smali

.class public Lim/tpelyyftgw/messenger/utils/TaskQueue;
.super Ljava/lang/Object;
.source "TaskQueue.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;
    }
.end annotation

.annotation system Ldalvik/annotation/Signature;
    value = {
        "<T:",
        "Ljava/lang/Object;",
        ">",
        "Ljava/lang/Object;"
    }
.end annotation


# instance fields
.field private miCount:I

.field private pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lim/tpelyyftgw/messenger/utils/TaskQueue<",
            "TT;>.DataNode;"
        }
    .end annotation
.end field

.field private pTail:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lim/tpelyyftgw/messenger/utils/TaskQueue<",
            "TT;>.DataNode;"
        }
    .end annotation
.end field


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>()V
    .registers 2

    .line 3
    .local p0, "this":Lim/tpelyyftgw/messenger/utils/TaskQueue;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>;"
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 4
    const/4 v0, 0x0

    iput-object v0, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    iput-object v0, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pTail:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    .line 5
    const/4 v0, 0x0

    iput v0, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->miCount:I

    return-void
.end method


# virtual methods
.method public declared-synchronized cleanQueue()V
    .registers 3

    .local p0, "this":Lim/tpelyyftgw/messenger/utils/TaskQueue;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>;"
    monitor-enter p0

    .line 38
    const/4 v0, 0x0

    .line 39
    .local v0, "dataNode":Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>.DataNode;"
    :goto_2
    :try_start_2
    iget-object v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    if-eqz v1, :cond_14

    .line 40
    iget-object v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    move-object v0, v1

    .line 41
    # getter for: Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->mNextNode:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;
    invoke-static {v0}, Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->access$000(Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;)Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    move-result-object v1

    iput-object v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    .line 42
    const/4 v1, 0x0

    # setter for: Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->mNextNode:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;
    invoke-static {v0, v1}, Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->access$002(Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;)Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    goto :goto_2

    .line 44
    .end local p0    # "this":Lim/tpelyyftgw/messenger/utils/TaskQueue;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>;"
    :cond_14
    const/4 v1, 0x0

    iput v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->miCount:I
    :try_end_17
    .catchall {:try_start_2 .. :try_end_17} :catchall_19

    .line 45
    monitor-exit p0

    return-void

    .line 37
    .end local v0    # "dataNode":Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>.DataNode;"
    :catchall_19
    move-exception v0

    monitor-exit p0

    goto :goto_1d

    :goto_1c
    throw v0

    :goto_1d
    goto :goto_1c
.end method

.method public getQueueSize()I
    .registers 2

    .line 48
    .local p0, "this":Lim/tpelyyftgw/messenger/utils/TaskQueue;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>;"
    iget v0, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->miCount:I

    return v0
.end method

.method public declared-synchronized getQueueTask()Ljava/lang/Object;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()TT;"
        }
    .end annotation

    .local p0, "this":Lim/tpelyyftgw/messenger/utils/TaskQueue;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>;"
    monitor-enter p0

    .line 24
    const/4 v0, 0x0

    .line 25
    .local v0, "dataNode":Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>.DataNode;"
    :try_start_2
    iget-object v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    const/4 v2, 0x0

    if-eqz v1, :cond_19

    .line 26
    iget-object v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    move-object v0, v1

    .line 27
    # getter for: Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->mNextNode:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;
    invoke-static {v0}, Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->access$000(Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;)Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    move-result-object v1

    iput-object v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    .line 28
    # setter for: Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->mNextNode:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;
    invoke-static {v0, v2}, Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->access$002(Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;)Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    .line 29
    iget v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->miCount:I

    add-int/lit8 v1, v1, -0x1

    iput v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->miCount:I

    .line 31
    .end local p0    # "this":Lim/tpelyyftgw/messenger/utils/TaskQueue;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>;"
    :cond_19
    if-eqz v0, :cond_21

    .line 32
    # getter for: Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->mData:Ljava/lang/Object;
    invoke-static {v0}, Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->access$100(Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;)Ljava/lang/Object;

    move-result-object v1
    :try_end_1f
    .catchall {:try_start_2 .. :try_end_1f} :catchall_23

    monitor-exit p0

    return-object v1

    .line 34
    :cond_21
    monitor-exit p0

    return-object v2

    .line 23
    .end local v0    # "dataNode":Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>.DataNode;"
    :catchall_23
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public declared-synchronized inputQueue(Ljava/lang/Object;)Z
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(TT;)Z"
        }
    .end annotation

    .local p0, "this":Lim/tpelyyftgw/messenger/utils/TaskQueue;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>;"
    .local p1, "tMember":Ljava/lang/Object;, "TT;"
    monitor-enter p0

    .line 8
    if-nez p1, :cond_6

    .line 9
    const/4 v0, 0x0

    monitor-exit p0

    return v0

    .line 11
    :cond_6
    :try_start_6
    new-instance v0, Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    invoke-direct {v0, p0, p1}, Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;-><init>(Lim/tpelyyftgw/messenger/utils/TaskQueue;Ljava/lang/Object;)V

    .line 12
    .local v0, "dataNode":Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>.DataNode;"
    iget v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->miCount:I

    if-nez v1, :cond_14

    .line 13
    iput-object v0, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pHeader:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    .line 14
    iput-object v0, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pTail:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    goto :goto_19

    .line 16
    .end local p0    # "this":Lim/tpelyyftgw/messenger/utils/TaskQueue;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>;"
    :cond_14
    iget-object v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pTail:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    # setter for: Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->mNextNode:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;
    invoke-static {v1, v0}, Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;->access$002(Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;)Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    .line 18
    :goto_19
    iput-object v0, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->pTail:Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;

    .line 19
    iget v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->miCount:I

    const/4 v2, 0x1

    add-int/2addr v1, v2

    iput v1, p0, Lim/tpelyyftgw/messenger/utils/TaskQueue;->miCount:I
    :try_end_21
    .catchall {:try_start_6 .. :try_end_21} :catchall_23

    .line 20
    monitor-exit p0

    return v2

    .line 7
    .end local v0    # "dataNode":Lim/tpelyyftgw/messenger/utils/TaskQueue$DataNode;, "Lim/tpelyyftgw/messenger/utils/TaskQueue<TT;>.DataNode;"
    .end local p1    # "tMember":Ljava/lang/Object;, "TT;"
    :catchall_23
    move-exception p1

    monitor-exit p0

    throw p1
.end method