TimingInfo.smali
.class public Lcom/amazonaws/util/TimingInfo;
.super Ljava/lang/Object;
.source "TimingInfo.java"
# static fields
.field private static final TIME_CONVERSION:D = 1000.0
.field static final UNKNOWN:I = -0x1
# instance fields
.field private endTimeNano:Ljava/lang/Long;
.field private final startEpochTimeMilli:Ljava/lang/Long;
.field private final startTimeNano:J
# direct methods
.method protected constructor <init>(Ljava/lang/Long;JLjava/lang/Long;)V
.registers 5
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/amazonaws/util/TimingInfo;->startEpochTimeMilli:Ljava/lang/Long;
.line 3
iput-wide p2, p0, Lcom/amazonaws/util/TimingInfo;->startTimeNano:J
.line 4
iput-object p4, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
return-void
.end method
.method public static durationMilliOf(JJ)D
.registers 5
.line 1
sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
sub-long/2addr p2, p0
invoke-virtual {v0, p2, p3}, Ljava/util/concurrent/TimeUnit;->toMicros(J)J
move-result-wide p0
long-to-double p0, p0
const-wide p2, 0x408f400000000000L # 1000.0
.line 2
invoke-static {p0, p1}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr p0, p2
return-wide p0
.end method
.method public static newTimingInfoFullSupport(JJ)Lcom/amazonaws/util/TimingInfo;
.registers 5
.line 1
new-instance v0, Lcom/amazonaws/util/TimingInfoFullSupport;
invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p2
const/4 p3, 0x0
invoke-direct {v0, p3, p0, p1, p2}, Lcom/amazonaws/util/TimingInfoFullSupport;-><init>(Ljava/lang/Long;JLjava/lang/Long;)V
return-object v0
.end method
.method public static newTimingInfoFullSupport(JJJ)Lcom/amazonaws/util/TimingInfo;
.registers 7
.line 2
new-instance v0, Lcom/amazonaws/util/TimingInfoFullSupport;
invoke-static {p0, p1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p0
.line 3
invoke-static {p4, p5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
invoke-direct {v0, p0, p2, p3, p1}, Lcom/amazonaws/util/TimingInfoFullSupport;-><init>(Ljava/lang/Long;JLjava/lang/Long;)V
return-object v0
.end method
.method public static startTiming()Lcom/amazonaws/util/TimingInfo;
.registers 5
.line 1
new-instance v0, Lcom/amazonaws/util/TimingInfo;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v2
const/4 v4, 0x0
invoke-direct {v0, v1, v2, v3, v4}, Lcom/amazonaws/util/TimingInfo;-><init>(Ljava/lang/Long;JLjava/lang/Long;)V
return-object v0
.end method
.method public static startTimingFullSupport()Lcom/amazonaws/util/TimingInfo;
.registers 5
.line 1
new-instance v0, Lcom/amazonaws/util/TimingInfoFullSupport;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
.line 2
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v2
const/4 v4, 0x0
invoke-direct {v0, v1, v2, v3, v4}, Lcom/amazonaws/util/TimingInfoFullSupport;-><init>(Ljava/lang/Long;JLjava/lang/Long;)V
return-object v0
.end method
.method public static startTimingFullSupport(J)Lcom/amazonaws/util/TimingInfo;
.registers 4
.line 3
new-instance v0, Lcom/amazonaws/util/TimingInfoFullSupport;
const/4 v1, 0x0
invoke-direct {v0, v1, p0, p1, v1}, Lcom/amazonaws/util/TimingInfoFullSupport;-><init>(Ljava/lang/Long;JLjava/lang/Long;)V
return-object v0
.end method
.method public static unmodifiableTimingInfo(JJLjava/lang/Long;)Lcom/amazonaws/util/TimingInfo;
.registers 6
.line 2
new-instance v0, Lcom/amazonaws/util/TimingInfoUnmodifiable;
invoke-static {p0, p1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p0
invoke-direct {v0, p0, p2, p3, p4}, Lcom/amazonaws/util/TimingInfoUnmodifiable;-><init>(Ljava/lang/Long;JLjava/lang/Long;)V
return-object v0
.end method
.method public static unmodifiableTimingInfo(JLjava/lang/Long;)Lcom/amazonaws/util/TimingInfo;
.registers 5
.line 1
new-instance v0, Lcom/amazonaws/util/TimingInfoUnmodifiable;
const/4 v1, 0x0
invoke-direct {v0, v1, p0, p1, p2}, Lcom/amazonaws/util/TimingInfoUnmodifiable;-><init>(Ljava/lang/Long;JLjava/lang/Long;)V
return-object v0
.end method
# virtual methods
.method public addSubMeasurement(Ljava/lang/String;Lcom/amazonaws/util/TimingInfo;)V
.registers 3
return-void
.end method
.method public endTiming()Lcom/amazonaws/util/TimingInfo;
.registers 3
.line 1
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
iput-object v0, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
return-object p0
.end method
.method public getAllCounters()Ljava/util/Map;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Number;",
">;"
}
.end annotation
.line 1
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v0
return-object v0
.end method
.method public getAllSubMeasurements(Ljava/lang/String;)Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/util/List<",
"Lcom/amazonaws/util/TimingInfo;",
">;"
}
.end annotation
const/4 p1, 0x0
return-object p1
.end method
.method public getCounter(Ljava/lang/String;)Ljava/lang/Number;
.registers 2
const/4 p1, 0x0
return-object p1
.end method
.method public final getElapsedTimeMillis()J
.registers 3
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->getTimeTakenMillisIfKnown()Ljava/lang/Double;
move-result-object v0
if-nez v0, :cond_9
const-wide/16 v0, -0x1
goto :goto_d
.line 2
:cond_9
invoke-virtual {v0}, Ljava/lang/Double;->longValue()J
move-result-wide v0
:goto_d
return-wide v0
.end method
.method public final getEndEpochTimeMilli()J
.registers 3
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->getEndEpochTimeMilliIfKnown()Ljava/lang/Long;
move-result-object v0
if-nez v0, :cond_9
const-wide/16 v0, -0x1
goto :goto_d
.line 2
:cond_9
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v0
:goto_d
return-wide v0
.end method
.method public final getEndEpochTimeMilliIfKnown()Ljava/lang/Long;
.registers 8
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->isStartEpochTimeMilliKnown()Z
move-result v0
if-eqz v0, :cond_27
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->isEndTimeKnown()Z
move-result v0
if-eqz v0, :cond_27
iget-object v0, p0, Lcom/amazonaws/util/TimingInfo;->startEpochTimeMilli:Ljava/lang/Long;
.line 2
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v0
sget-object v2, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
iget-object v3, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
.line 3
invoke-virtual {v3}, Ljava/lang/Long;->longValue()J
move-result-wide v3
iget-wide v5, p0, Lcom/amazonaws/util/TimingInfo;->startTimeNano:J
sub-long/2addr v3, v5
invoke-virtual {v2, v3, v4}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v2
add-long/2addr v0, v2
.line 4
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
goto :goto_28
:cond_27
const/4 v0, 0x0
:goto_28
return-object v0
.end method
.method public final getEndTime()J
.registers 3
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->getEndEpochTimeMilli()J
move-result-wide v0
return-wide v0
.end method
.method public final getEndTimeNano()J
.registers 3
.line 1
iget-object v0, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
if-nez v0, :cond_7
const-wide/16 v0, -0x1
goto :goto_b
:cond_7
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v0
:goto_b
return-wide v0
.end method
.method public final getEndTimeNanoIfKnown()Ljava/lang/Long;
.registers 2
.line 1
iget-object v0, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
return-object v0
.end method
.method public getLastSubMeasurement(Ljava/lang/String;)Lcom/amazonaws/util/TimingInfo;
.registers 2
const/4 p1, 0x0
return-object p1
.end method
.method public final getStartEpochTimeMilli()J
.registers 3
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->getStartEpochTimeMilliIfKnown()Ljava/lang/Long;
move-result-object v0
if-nez v0, :cond_9
const-wide/16 v0, -0x1
goto :goto_d
.line 2
:cond_9
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v0
:goto_d
return-wide v0
.end method
.method public final getStartEpochTimeMilliIfKnown()Ljava/lang/Long;
.registers 2
.line 1
iget-object v0, p0, Lcom/amazonaws/util/TimingInfo;->startEpochTimeMilli:Ljava/lang/Long;
return-object v0
.end method
.method public final getStartTime()J
.registers 4
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->isStartEpochTimeMilliKnown()Z
move-result v0
if-eqz v0, :cond_d
iget-object v0, p0, Lcom/amazonaws/util/TimingInfo;->startEpochTimeMilli:Ljava/lang/Long;
.line 2
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v0
goto :goto_15
:cond_d
sget-object v0, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
iget-wide v1, p0, Lcom/amazonaws/util/TimingInfo;->startTimeNano:J
.line 3
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J
move-result-wide v0
:goto_15
return-wide v0
.end method
.method public final getStartTimeNano()J
.registers 3
.line 1
iget-wide v0, p0, Lcom/amazonaws/util/TimingInfo;->startTimeNano:J
return-wide v0
.end method
.method public getSubMeasurement(Ljava/lang/String;)Lcom/amazonaws/util/TimingInfo;
.registers 2
const/4 p1, 0x0
return-object p1
.end method
.method public getSubMeasurement(Ljava/lang/String;I)Lcom/amazonaws/util/TimingInfo;
.registers 3
const/4 p1, 0x0
return-object p1
.end method
.method public getSubMeasurementsByName()Ljava/util/Map;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/util/List<",
"Lcom/amazonaws/util/TimingInfo;",
">;>;"
}
.end annotation
.line 1
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v0
return-object v0
.end method
.method public final getTimeTakenMillis()D
.registers 3
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->getTimeTakenMillisIfKnown()Ljava/lang/Double;
move-result-object v0
if-nez v0, :cond_9
const-wide/high16 v0, -0x4010000000000000L # -1.0
goto :goto_d
.line 2
:cond_9
invoke-virtual {v0}, Ljava/lang/Double;->doubleValue()D
move-result-wide v0
:goto_d
return-wide v0
.end method
.method public final getTimeTakenMillisIfKnown()Ljava/lang/Double;
.registers 5
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->isEndTimeKnown()Z
move-result v0
if-eqz v0, :cond_17
iget-wide v0, p0, Lcom/amazonaws/util/TimingInfo;->startTimeNano:J
iget-object v2, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
.line 2
invoke-virtual {v2}, Ljava/lang/Long;->longValue()J
move-result-wide v2
invoke-static {v0, v1, v2, v3}, Lcom/amazonaws/util/TimingInfo;->durationMilliOf(JJ)D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v0
goto :goto_18
:cond_17
const/4 v0, 0x0
:goto_18
return-object v0
.end method
.method public incrementCounter(Ljava/lang/String;)V
.registers 2
return-void
.end method
.method public final isEndTimeKnown()Z
.registers 2
.line 1
iget-object v0, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
if-eqz v0, :cond_6
const/4 v0, 0x1
goto :goto_7
:cond_6
const/4 v0, 0x0
:goto_7
return v0
.end method
.method public final isStartEpochTimeMilliKnown()Z
.registers 2
.line 1
iget-object v0, p0, Lcom/amazonaws/util/TimingInfo;->startEpochTimeMilli:Ljava/lang/Long;
if-eqz v0, :cond_6
const/4 v0, 0x1
goto :goto_7
:cond_6
const/4 v0, 0x0
:goto_7
return v0
.end method
.method public setCounter(Ljava/lang/String;J)V
.registers 4
return-void
.end method
.method public setEndTime(J)V
.registers 4
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 1
sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v0, p1, p2}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide p1
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
iput-object p1, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
return-void
.end method
.method public setEndTimeNano(J)V
.registers 3
.line 1
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
iput-object p1, p0, Lcom/amazonaws/util/TimingInfo;->endTimeNano:Ljava/lang/Long;
return-void
.end method
.method public final toString()Ljava/lang/String;
.registers 3
.line 1
invoke-virtual {p0}, Lcom/amazonaws/util/TimingInfo;->getTimeTakenMillis()D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/String;->valueOf(D)Ljava/lang/String;
move-result-object v0
return-object v0
.end method