FullUploadTaskScheduleCenter.smali
.class Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;
.super Ljava/lang/Object;
.source "FullUploadTaskScheduleCenter.java"
# instance fields
.field private appKey:Ljava/lang/String;
.field private deviceId:Ljava/lang/String;
.field private executor:Lio/rong/rtlog/upload/LimitAliveSingleTaskExecutor;
.field private logCache:Lio/rong/rtlog/upload/RtLogCache;
.field private logCacheDir:Ljava/lang/String;
.field private retryTaskTimes:I
.field private taskQueue:Ljava/util/LinkedList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/LinkedList<",
"Lio/rong/rtlog/upload/FullUploadLogTask;",
">;"
}
.end annotation
.end field
.field private version:Ljava/lang/String;
# direct methods
.method constructor <init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/rong/rtlog/upload/RtLogCache;Ljava/lang/String;)V
.registers 7
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->taskQueue:Ljava/util/LinkedList;
const/4 v0, 0x0
.line 3
iput v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->retryTaskTimes:I
.line 4
new-instance v0, Lio/rong/rtlog/upload/LimitAliveSingleTaskExecutor;
invoke-direct {v0}, Lio/rong/rtlog/upload/LimitAliveSingleTaskExecutor;-><init>()V
iput-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->executor:Lio/rong/rtlog/upload/LimitAliveSingleTaskExecutor;
.line 5
iput-object p1, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->version:Ljava/lang/String;
.line 6
iput-object p2, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->deviceId:Ljava/lang/String;
.line 7
iput-object p3, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->appKey:Ljava/lang/String;
.line 8
iput-object p4, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->logCache:Lio/rong/rtlog/upload/RtLogCache;
.line 9
iput-object p5, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->logCacheDir:Ljava/lang/String;
return-void
.end method
.method static synthetic access$000(Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;Lio/rong/rtlog/upload/FullUploadLogTask;Z)V
.registers 3
.line 1
invoke-direct {p0, p1, p2}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->onTaskEnd(Lio/rong/rtlog/upload/FullUploadLogTask;Z)V
return-void
.end method
.method private declared-synchronized executeTask(Lio/rong/rtlog/upload/FullUploadLogTask;J)V
.registers 8
monitor-enter p0
.line 1
:try_start_1
iget-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->executor:Lio/rong/rtlog/upload/LimitAliveSingleTaskExecutor;
new-instance v1, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter$1;
invoke-direct {v1, p0, p1}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter$1;-><init>(Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;Lio/rong/rtlog/upload/FullUploadLogTask;)V
const-wide/16 v2, 0x3e8
mul-long p2, p2, v2
invoke-virtual {v0, v1, p2, p3}, Lio/rong/rtlog/upload/LimitAliveSingleTaskExecutor;->execute(Ljava/lang/Runnable;J)V
:try_end_f
.catchall {:try_start_1 .. :try_end_f} :catchall_11
.line 2
monitor-exit p0
return-void
:catchall_11
move-exception p1
monitor-exit p0
throw p1
.end method
.method private declared-synchronized getRetryDelayTime()J
.registers 7
monitor-enter p0
const-wide/16 v0, 0x5
const-wide/high16 v2, 0x4000000000000000L # 2.0
.line 1
:try_start_5
iget v4, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->retryTaskTimes:I
add-int/lit8 v4, v4, -0x1
int-to-double v4, v4
invoke-static {v2, v3, v4, v5}, Ljava/lang/Math;->pow(DD)D
move-result-wide v2
:try_end_e
.catchall {:try_start_5 .. :try_end_e} :catchall_13
double-to-long v2, v2
mul-long v2, v2, v0
monitor-exit p0
return-wide v2
:catchall_13
move-exception v0
monitor-exit p0
throw v0
.end method
.method private declared-synchronized nextTask()V
.registers 4
monitor-enter p0
.line 1
:try_start_1
iget-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->taskQueue:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->isEmpty()Z
move-result v0
if-nez v0, :cond_16
.line 2
iget-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->taskQueue:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/rong/rtlog/upload/FullUploadLogTask;
const-wide/16 v1, 0x0
.line 3
invoke-direct {p0, v0, v1, v2}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->executeTask(Lio/rong/rtlog/upload/FullUploadLogTask;J)V
:try_end_16
.catchall {:try_start_1 .. :try_end_16} :catchall_18
.line 4
:cond_16
monitor-exit p0
return-void
:catchall_18
move-exception v0
monitor-exit p0
throw v0
.end method
.method private declared-synchronized onTaskEnd(Lio/rong/rtlog/upload/FullUploadLogTask;Z)V
.registers 5
monitor-enter p0
const/4 v0, 0x0
if-eqz p2, :cond_18
.line 1
:try_start_4
iget-object p2, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->logCache:Lio/rong/rtlog/upload/RtLogCache;
invoke-virtual {p1}, Lio/rong/rtlog/upload/FullUploadLogTask;->getLogId()Ljava/lang/String;
move-result-object v1
invoke-virtual {p2, v1}, Lio/rong/rtlog/upload/RtLogCache;->removeFullUploadTaskCache(Ljava/lang/String;)V
.line 2
iget-object p2, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->taskQueue:Ljava/util/LinkedList;
invoke-virtual {p2, p1}, Ljava/util/LinkedList;->remove(Ljava/lang/Object;)Z
.line 3
iput v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->retryTaskTimes:I
.line 4
invoke-direct {p0}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->nextTask()V
goto :goto_35
.line 5
:cond_18
iget p2, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->retryTaskTimes:I
const/4 v1, 0x2
if-ge p2, v1, :cond_2b
.line 6
iget p2, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->retryTaskTimes:I
add-int/lit8 p2, p2, 0x1
iput p2, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->retryTaskTimes:I
.line 7
invoke-direct {p0}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->getRetryDelayTime()J
move-result-wide v0
invoke-direct {p0, p1, v0, v1}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->executeTask(Lio/rong/rtlog/upload/FullUploadLogTask;J)V
goto :goto_35
.line 8
:cond_2b
iget-object p2, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->taskQueue:Ljava/util/LinkedList;
invoke-virtual {p2, p1}, Ljava/util/LinkedList;->remove(Ljava/lang/Object;)Z
.line 9
iput v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->retryTaskTimes:I
.line 10
invoke-direct {p0}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->nextTask()V
:try_end_35
.catchall {:try_start_4 .. :try_end_35} :catchall_37
.line 11
:goto_35
monitor-exit p0
return-void
:catchall_37
move-exception p1
monitor-exit p0
throw p1
.end method
# virtual methods
.method declared-synchronized addTask(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJ)V
.registers 21
move-object v1, p0
monitor-enter p0
.line 1
:try_start_2
iget-object v2, v1, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->logCache:Lio/rong/rtlog/upload/RtLogCache;
iget-object v3, v1, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->version:Ljava/lang/String;
iget-object v4, v1, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->deviceId:Ljava/lang/String;
iget-object v5, v1, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->appKey:Ljava/lang/String;
move-object v6, p1
move-object v7, p2
move-object/from16 v8, p3
move-wide/from16 v9, p4
move-wide/from16 v11, p6
invoke-virtual/range {v2 .. v12}, Lio/rong/rtlog/upload/RtLogCache;->addFullUploadTaskCache(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJ)V
.line 2
invoke-virtual {p0}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->loadCacheTaskAndStart()V
:try_end_18
.catchall {:try_start_2 .. :try_end_18} :catchall_1a
.line 3
monitor-exit p0
return-void
:catchall_1a
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized endSchedule()V
.registers 2
monitor-enter p0
.line 1
:try_start_1
iget-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->taskQueue:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->clear()V
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_8
.line 2
monitor-exit p0
return-void
:catchall_8
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized loadCacheTaskAndStart()V
.registers 16
monitor-enter p0
.line 1
:try_start_1
iget-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->taskQueue:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->clear()V
.line 2
iget-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->logCache:Lio/rong/rtlog/upload/RtLogCache;
invoke-virtual {v0}, Lio/rong/rtlog/upload/RtLogCache;->loadFullUploadLogCacheList()Ljava/util/List;
move-result-object v0
.line 3
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_10
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_46
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lio/rong/rtlog/upload/FullUploadLogCache;
.line 4
new-instance v14, Lio/rong/rtlog/upload/FullUploadLogTask;
invoke-virtual {v1}, Lio/rong/rtlog/upload/FullUploadLogCache;->getVersion()Ljava/lang/String;
move-result-object v3
iget-object v4, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->deviceId:Ljava/lang/String;
iget-object v5, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->appKey:Ljava/lang/String;
invoke-virtual {v1}, Lio/rong/rtlog/upload/FullUploadLogCache;->getUri()Ljava/lang/String;
move-result-object v6
invoke-virtual {v1}, Lio/rong/rtlog/upload/FullUploadLogCache;->getUserId()Ljava/lang/String;
move-result-object v7
invoke-virtual {v1}, Lio/rong/rtlog/upload/FullUploadLogCache;->getLogId()Ljava/lang/String;
move-result-object v8
invoke-virtual {v1}, Lio/rong/rtlog/upload/FullUploadLogCache;->getStartTime()J
move-result-wide v9
invoke-virtual {v1}, Lio/rong/rtlog/upload/FullUploadLogCache;->getEndTime()J
move-result-wide v11
iget-object v13, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->logCacheDir:Ljava/lang/String;
move-object v2, v14
invoke-direct/range {v2 .. v13}, Lio/rong/rtlog/upload/FullUploadLogTask;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJLjava/lang/String;)V
.line 5
iget-object v1, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->taskQueue:Ljava/util/LinkedList;
invoke-virtual {v1, v14}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
goto :goto_10
.line 6
:cond_46
iget-object v0, p0, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->executor:Lio/rong/rtlog/upload/LimitAliveSingleTaskExecutor;
invoke-virtual {v0}, Lio/rong/rtlog/upload/LimitAliveSingleTaskExecutor;->isExecutingTask()Z
move-result v0
if-nez v0, :cond_51
.line 7
invoke-direct {p0}, Lio/rong/rtlog/upload/FullUploadTaskScheduleCenter;->nextTask()V
:try_end_51
.catchall {:try_start_1 .. :try_end_51} :catchall_53
.line 8
:cond_51
monitor-exit p0
return-void
:catchall_53
move-exception v0
monitor-exit p0
goto :goto_57
:goto_56
throw v0
:goto_57
goto :goto_56
.end method