PubSubTaskQueue.smali

.class public Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;
.super Ljava/lang/Object;
.source "PubSubTaskQueue.java"


# static fields
.field private static final TAG:Ljava/lang/String; = "PubSubTaskQueue"


# instance fields
.field private mTaskCustomer:Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;

.field private mTasks:Ljava/util/concurrent/LinkedBlockingQueue;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/concurrent/LinkedBlockingQueue<",
            "Lcn/rongcloud/rtc/webrtc/task/PubSubTask;",
            ">;"
        }
    .end annotation
.end field


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

    return-void
.end method

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

    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 2
    new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue;

    invoke-direct {v0}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V

    iput-object v0, p0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->mTasks:Ljava/util/concurrent/LinkedBlockingQueue;

    .line 3
    new-instance v0, Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;

    invoke-direct {v0, p0}, Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;-><init>(Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;)V

    iput-object v0, p0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->mTaskCustomer:Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;

    .line 4
    iget-object v0, p0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->mTaskCustomer:Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;

    invoke-virtual {v0}, Ljava/lang/Thread;->start()V

    return-void
.end method

.method static synthetic access$000(Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;)Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;
    .registers 1

    .line 1
    iget-object p0, p0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->mTaskCustomer:Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;

    return-object p0
.end method


# virtual methods
.method public clearTask()V
    .registers 2

    .line 1
    iget-object v0, p0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->mTasks:Ljava/util/concurrent/LinkedBlockingQueue;

    invoke-virtual {v0}, Ljava/util/concurrent/LinkedBlockingQueue;->clear()V

    .line 2
    iget-object v0, p0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->mTaskCustomer:Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;

    invoke-virtual {v0}, Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;->notifyTask()V

    return-void
.end method

.method public init()V
    .registers 1

    return-void
.end method

.method public offerTask(Lcn/rongcloud/rtc/webrtc/task/PubSubTask;)V
    .registers 3

    .line 1
    iget-object v0, p0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->mTaskCustomer:Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;

    invoke-virtual {p1, v0}, Lcn/rongcloud/rtc/webrtc/task/PubSubTask;->setCustomer(Lcn/rongcloud/rtc/webrtc/task/TaskCustomerThread;)V

    .line 2
    iget-object v0, p0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->mTasks:Ljava/util/concurrent/LinkedBlockingQueue;

    invoke-virtual {v0, p1}, Ljava/util/concurrent/LinkedBlockingQueue;->offer(Ljava/lang/Object;)Z

    return-void
.end method

.method public stop(Ljava/lang/Runnable;)V
    .registers 4

    .line 1
    sget-object v0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->TAG:Ljava/lang/String;

    const-string v1, "stop PubSubTaskQueue"

    invoke-static {v0, v1}, Lcn/rongcloud/rtc/utils/FinLog;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 2
    invoke-virtual {p0}, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;->clearTask()V

    .line 3
    new-instance v0, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue$1;

    const/4 v1, 0x0

    invoke-direct {v0, p0, v1, p1}, Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue$1;-><init>(Lcn/rongcloud/rtc/webrtc/task/PubSubTaskQueue;Lcn/rongcloud/rtc/api/callback/IRCRTCFailedCallback;Ljava/lang/Runnable;)V

    invoke-virtual {p0, v0}, Lcn/rongcloud/rtc/webrtc/task/PubS