2022-06-10 21:38:30 +09:00

734 lines
19 KiB
Smali

.class public final Lokhttp3/internal/cache2/Relay;
.super Ljava/lang/Object;
.source "Relay.kt"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lokhttp3/internal/cache2/Relay$RelaySource;,
Lokhttp3/internal/cache2/Relay$Companion;
}
.end annotation
.annotation runtime Lkotlin/Metadata;
bv = {}
d1 = {
"\u0000L\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\t\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0004\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0006\n\u0002\u0010\u000b\n\u0002\u0008\u0006\n\u0002\u0010\u0008\n\u0002\u0008\u0006\n\u0002\u0018\u0002\n\u0002\u0008\u000f\n\u0002\u0018\u0002\n\u0002\u0008\u0012\u0018\u0000 C2\u00020\u0001:\u0002CDB5\u0008\u0002\u0012\u0008\u0010$\u001a\u0004\u0018\u00010#\u0012\u0008\u0010;\u001a\u0004\u0018\u00010\u000c\u0012\u0006\u0010*\u001a\u00020\u0004\u0012\u0006\u0010\u000b\u001a\u00020\u0002\u0012\u0006\u00101\u001a\u00020\u0004\u00a2\u0006\u0004\u0008A\u0010BJ \u0010\u0008\u001a\u00020\u00072\u0006\u0010\u0003\u001a\u00020\u00022\u0006\u0010\u0005\u001a\u00020\u00042\u0006\u0010\u0006\u001a\u00020\u0004H\u0002J\u0010\u0010\t\u001a\u00020\u00072\u0006\u0010\u0005\u001a\u00020\u0004H\u0002J\u000e\u0010\n\u001a\u00020\u00072\u0006\u0010\u0005\u001a\u00020\u0004J\u0006\u0010\u000b\u001a\u00020\u0002J\u0008\u0010\r\u001a\u0004\u0018\u00010\u000cR$\u0010\u000f\u001a\u0004\u0018\u00010\u000e8\u0006@\u0006X\u0086\u000e\u00a2\u0006\u0012\n\u0004\u0008\u000f\u0010\u0010\u001a\u0004\u0008\u0011\u0010\u0012\"\u0004\u0008\u0013\u0010\u0014R\"\u0010\u0016\u001a\u00020\u00158\u0006@\u0006X\u0086\u000e\u00a2\u0006\u0012\n\u0004\u0008\u0016\u0010\u0017\u001a\u0004\u0008\u0018\u0010\u0019\"\u0004\u0008\u001a\u0010\u001bR\"\u0010\u001d\u001a\u00020\u001c8\u0006@\u0006X\u0086\u000e\u00a2\u0006\u0012\n\u0004\u0008\u001d\u0010\u001e\u001a\u0004\u0008\u001f\u0010 \"\u0004\u0008!\u0010\"R$\u0010$\u001a\u0004\u0018\u00010#8\u0006@\u0006X\u0086\u000e\u00a2\u0006\u0012\n\u0004\u0008$\u0010%\u001a\u0004\u0008&\u0010\'\"\u0004\u0008(\u0010)R\"\u0010*\u001a\u00020\u00048\u0006@\u0006X\u0086\u000e\u00a2\u0006\u0012\n\u0004\u0008*\u0010+\u001a\u0004\u0008,\u0010-\"\u0004\u0008.\u0010/R\u0014\u0010\u000b\u001a\u00020\u00028\u0002X\u0082\u0004\u00a2\u0006\u0006\n\u0004\u0008\u000b\u00100R\u0017\u00101\u001a\u00020\u00048\u0006\u00a2\u0006\u000c\n\u0004\u00081\u0010+\u001a\u0004\u00082\u0010-R\u0017\u00104\u001a\u0002038\u0006\u00a2\u0006\u000c\n\u0004\u00084\u00105\u001a\u0004\u00086\u00107R\u0017\u00108\u001a\u0002038\u0006\u00a2\u0006\u000c\n\u0004\u00088\u00105\u001a\u0004\u00089\u00107R\u0011\u0010:\u001a\u00020\u00158F\u00a2\u0006\u0006\u001a\u0004\u0008:\u0010\u0019R$\u0010;\u001a\u0004\u0018\u00010\u000c8\u0006@\u0006X\u0086\u000e\u00a2\u0006\u0012\n\u0004\u0008;\u0010<\u001a\u0004\u0008=\u0010>\"\u0004\u0008?\u0010@\u00a8\u0006E"
}
d2 = {
"Lokhttp3/internal/cache2/Relay;",
"",
"Lokio/ByteString;",
"prefix",
"",
"upstreamSize",
"metadataSize",
"Lkotlin/d1;",
"writeHeader",
"writeMetadata",
"commit",
"metadata",
"Lzj/m0;",
"newSource",
"Ljava/lang/Thread;",
"upstreamReader",
"Ljava/lang/Thread;",
"getUpstreamReader",
"()Ljava/lang/Thread;",
"setUpstreamReader",
"(Ljava/lang/Thread;)V",
"",
"complete",
"Z",
"getComplete",
"()Z",
"setComplete",
"(Z)V",
"",
"sourceCount",
"I",
"getSourceCount",
"()I",
"setSourceCount",
"(I)V",
"Ljava/io/RandomAccessFile;",
"file",
"Ljava/io/RandomAccessFile;",
"getFile",
"()Ljava/io/RandomAccessFile;",
"setFile",
"(Ljava/io/RandomAccessFile;)V",
"upstreamPos",
"J",
"getUpstreamPos",
"()J",
"setUpstreamPos",
"(J)V",
"Lokio/ByteString;",
"bufferMaxSize",
"getBufferMaxSize",
"Lzj/m;",
"upstreamBuffer",
"Lzj/m;",
"getUpstreamBuffer",
"()Lzj/m;",
"buffer",
"getBuffer",
"isClosed",
"upstream",
"Lzj/m0;",
"getUpstream",
"()Lzj/m0;",
"setUpstream",
"(Lzj/m0;)V",
"<init>",
"(Ljava/io/RandomAccessFile;Lzj/m0;JLokio/ByteString;J)V",
"Companion",
"RelaySource",
"okhttp"
}
k = 0x1
mv = {
0x1,
0x4,
0x0
}
.end annotation
# static fields
.field public static final Companion:Lokhttp3/internal/cache2/Relay$Companion;
.field private static final FILE_HEADER_SIZE:J = 0x20L
.field public static final PREFIX_CLEAN:Lokio/ByteString;
.annotation build Lkotlin/jvm/JvmField;
.end annotation
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field public static final PREFIX_DIRTY:Lokio/ByteString;
.annotation build Lkotlin/jvm/JvmField;
.end annotation
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field private static final SOURCE_FILE:I = 0x2
.field private static final SOURCE_UPSTREAM:I = 0x1
# instance fields
.field private final buffer:Lzj/m;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field private final bufferMaxSize:J
.field private complete:Z
.field private file:Ljava/io/RandomAccessFile;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end field
.field private final metadata:Lokio/ByteString;
.field private sourceCount:I
.field private upstream:Lzj/m0;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end field
.field private final upstreamBuffer:Lzj/m;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field private upstreamPos:J
.field private upstreamReader:Ljava/lang/Thread;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 2
new-instance v0, Lokhttp3/internal/cache2/Relay$Companion;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lokhttp3/internal/cache2/Relay$Companion;-><init>(Lkotlin/jvm/internal/u;)V
sput-object v0, Lokhttp3/internal/cache2/Relay;->Companion:Lokhttp3/internal/cache2/Relay$Companion;
.line 1
sget-object v0, Lokio/ByteString;->Companion:Lokio/ByteString$a;
const-string v1, "OkHttp cache v1\n"
invoke-virtual {v0, v1}, Lokio/ByteString$a;->l(Ljava/lang/String;)Lokio/ByteString;
move-result-object v1
sput-object v1, Lokhttp3/internal/cache2/Relay;->PREFIX_CLEAN:Lokio/ByteString;
const-string v1, "OkHttp DIRTY :(\n"
.line 2
invoke-virtual {v0, v1}, Lokio/ByteString$a;->l(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/cache2/Relay;->PREFIX_DIRTY:Lokio/ByteString;
return-void
.end method
.method private constructor <init>(Ljava/io/RandomAccessFile;Lzj/m0;JLokio/ByteString;J)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
iput-object p2, p0, Lokhttp3/internal/cache2/Relay;->upstream:Lzj/m0;
iput-wide p3, p0, Lokhttp3/internal/cache2/Relay;->upstreamPos:J
iput-object p5, p0, Lokhttp3/internal/cache2/Relay;->metadata:Lokio/ByteString;
iput-wide p6, p0, Lokhttp3/internal/cache2/Relay;->bufferMaxSize:J
.line 2
new-instance p1, Lzj/m;
invoke-direct {p1}, Lzj/m;-><init>()V
iput-object p1, p0, Lokhttp3/internal/cache2/Relay;->upstreamBuffer:Lzj/m;
.line 3
iget-object p1, p0, Lokhttp3/internal/cache2/Relay;->upstream:Lzj/m0;
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
iput-boolean p1, p0, Lokhttp3/internal/cache2/Relay;->complete:Z
.line 4
new-instance p1, Lzj/m;
invoke-direct {p1}, Lzj/m;-><init>()V
iput-object p1, p0, Lokhttp3/internal/cache2/Relay;->buffer:Lzj/m;
return-void
.end method
.method public synthetic constructor <init>(Ljava/io/RandomAccessFile;Lzj/m0;JLokio/ByteString;JLkotlin/jvm/internal/u;)V
.locals 0
.line 5
invoke-direct/range {p0 .. p7}, Lokhttp3/internal/cache2/Relay;-><init>(Ljava/io/RandomAccessFile;Lzj/m0;JLokio/ByteString;J)V
return-void
.end method
.method public static final synthetic access$writeHeader(Lokhttp3/internal/cache2/Relay;Lokio/ByteString;JJ)V
.locals 0
.line 1
invoke-direct/range {p0 .. p5}, Lokhttp3/internal/cache2/Relay;->writeHeader(Lokio/ByteString;JJ)V
return-void
.end method
.method private final writeHeader(Lokio/ByteString;JJ)V
.locals 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
new-instance v3, Lzj/m;
invoke-direct {v3}, Lzj/m;-><init>()V
.line 2
invoke-virtual {v3, p1}, Lzj/m;->U1(Lokio/ByteString;)Lzj/m;
.line 3
invoke-virtual {v3, p2, p3}, Lzj/m;->e2(J)Lzj/m;
.line 4
invoke-virtual {v3, p4, p5}, Lzj/m;->e2(J)Lzj/m;
.line 5
invoke-virtual {v3}, Lzj/m;->size()J
move-result-wide p1
const-wide/16 p3, 0x20
cmp-long p1, p1, p3
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
if-eqz p1, :cond_1
.line 6
new-instance v0, Lokhttp3/internal/cache2/FileOperator;
iget-object p1, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
invoke-static {p1}, Lkotlin/jvm/internal/f0;->m(Ljava/lang/Object;)V
invoke-virtual {p1}, Ljava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object p1
const-string p2, "file!!.channel"
invoke-static {p1, p2}, Lkotlin/jvm/internal/f0;->o(Ljava/lang/Object;Ljava/lang/String;)V
invoke-direct {v0, p1}, Lokhttp3/internal/cache2/FileOperator;-><init>(Ljava/nio/channels/FileChannel;)V
const-wide/16 v1, 0x0
const-wide/16 v4, 0x20
.line 7
invoke-virtual/range {v0 .. v5}, Lokhttp3/internal/cache2/FileOperator;->write(JLzj/m;J)V
return-void
.line 8
:cond_1
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "Failed requirement."
invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method private final writeMetadata(J)V
.locals 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
new-instance v3, Lzj/m;
invoke-direct {v3}, Lzj/m;-><init>()V
.line 2
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->metadata:Lokio/ByteString;
invoke-virtual {v3, v0}, Lzj/m;->U1(Lokio/ByteString;)Lzj/m;
.line 3
new-instance v0, Lokhttp3/internal/cache2/FileOperator;
iget-object v1, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
invoke-static {v1}, Lkotlin/jvm/internal/f0;->m(Ljava/lang/Object;)V
invoke-virtual {v1}, Ljava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v1
const-string v2, "file!!.channel"
invoke-static {v1, v2}, Lkotlin/jvm/internal/f0;->o(Ljava/lang/Object;Ljava/lang/String;)V
invoke-direct {v0, v1}, Lokhttp3/internal/cache2/FileOperator;-><init>(Ljava/nio/channels/FileChannel;)V
const-wide/16 v1, 0x20
add-long/2addr v1, p1
.line 4
iget-object p1, p0, Lokhttp3/internal/cache2/Relay;->metadata:Lokio/ByteString;
invoke-virtual {p1}, Lokio/ByteString;->size()I
move-result p1
int-to-long v4, p1
invoke-virtual/range {v0 .. v5}, Lokhttp3/internal/cache2/FileOperator;->write(JLzj/m;J)V
return-void
.end method
# virtual methods
.method public final commit(J)V
.locals 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p1, p2}, Lokhttp3/internal/cache2/Relay;->writeMetadata(J)V
.line 2
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
invoke-static {v0}, Lkotlin/jvm/internal/f0;->m(Ljava/lang/Object;)V
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v0
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/nio/channels/FileChannel;->force(Z)V
.line 3
sget-object v3, Lokhttp3/internal/cache2/Relay;->PREFIX_CLEAN:Lokio/ByteString;
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->metadata:Lokio/ByteString;
invoke-virtual {v0}, Lokio/ByteString;->size()I
move-result v0
int-to-long v6, v0
move-object v2, p0
move-wide v4, p1
invoke-direct/range {v2 .. v7}, Lokhttp3/internal/cache2/Relay;->writeHeader(Lokio/ByteString;JJ)V
.line 4
iget-object p1, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
invoke-static {p1}, Lkotlin/jvm/internal/f0;->m(Ljava/lang/Object;)V
invoke-virtual {p1}, Ljava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object p1
invoke-virtual {p1, v1}, Ljava/nio/channels/FileChannel;->force(Z)V
.line 5
monitor-enter p0
const/4 p1, 0x1
.line 6
:try_start_0
iput-boolean p1, p0, Lokhttp3/internal/cache2/Relay;->complete:Z
.line 7
sget-object p1, Lkotlin/d1;->a:Lkotlin/d1;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 8
monitor-exit p0
.line 9
iget-object p1, p0, Lokhttp3/internal/cache2/Relay;->upstream:Lzj/m0;
if-eqz p1, :cond_0
invoke-static {p1}, Lokhttp3/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
:cond_0
const/4 p1, 0x0
.line 10
iput-object p1, p0, Lokhttp3/internal/cache2/Relay;->upstream:Lzj/m0;
return-void
:catchall_0
move-exception p1
.line 11
monitor-exit p0
throw p1
.end method
.method public final getBuffer()Lzj/m;
.locals 1
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->buffer:Lzj/m;
return-object v0
.end method
.method public final getBufferMaxSize()J
.locals 2
.line 1
iget-wide v0, p0, Lokhttp3/internal/cache2/Relay;->bufferMaxSize:J
return-wide v0
.end method
.method public final getComplete()Z
.locals 1
.line 1
iget-boolean v0, p0, Lokhttp3/internal/cache2/Relay;->complete:Z
return v0
.end method
.method public final getFile()Ljava/io/RandomAccessFile;
.locals 1
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.line 1
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
return-object v0
.end method
.method public final getSourceCount()I
.locals 1
.line 1
iget v0, p0, Lokhttp3/internal/cache2/Relay;->sourceCount:I
return v0
.end method
.method public final getUpstream()Lzj/m0;
.locals 1
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.line 1
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->upstream:Lzj/m0;
return-object v0
.end method
.method public final getUpstreamBuffer()Lzj/m;
.locals 1
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->upstreamBuffer:Lzj/m;
return-object v0
.end method
.method public final getUpstreamPos()J
.locals 2
.line 1
iget-wide v0, p0, Lokhttp3/internal/cache2/Relay;->upstreamPos:J
return-wide v0
.end method
.method public final getUpstreamReader()Ljava/lang/Thread;
.locals 1
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.line 1
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->upstreamReader:Ljava/lang/Thread;
return-object v0
.end method
.method public final isClosed()Z
.locals 1
.line 1
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public final metadata()Lokio/ByteString;
.locals 1
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->metadata:Lokio/ByteString;
return-object v0
.end method
.method public final newSource()Lzj/m0;
.locals 1
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.line 1
monitor-enter p0
.line 2
:try_start_0
iget-object v0, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez v0, :cond_0
const/4 v0, 0x0
monitor-exit p0
return-object v0
.line 3
:cond_0
:try_start_1
iget v0, p0, Lokhttp3/internal/cache2/Relay;->sourceCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lokhttp3/internal/cache2/Relay;->sourceCount:I
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 4
monitor-exit p0
.line 5
new-instance v0, Lokhttp3/internal/cache2/Relay$RelaySource;
invoke-direct {v0, p0}, Lokhttp3/internal/cache2/Relay$RelaySource;-><init>(Lokhttp3/internal/cache2/Relay;)V
return-object v0
:catchall_0
move-exception v0
.line 6
monitor-exit p0
throw v0
.end method
.method public final setComplete(Z)V
.locals 0
.line 1
iput-boolean p1, p0, Lokhttp3/internal/cache2/Relay;->complete:Z
return-void
.end method
.method public final setFile(Ljava/io/RandomAccessFile;)V
.locals 0
.param p1 # Ljava/io/RandomAccessFile;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end param
.line 1
iput-object p1, p0, Lokhttp3/internal/cache2/Relay;->file:Ljava/io/RandomAccessFile;
return-void
.end method
.method public final setSourceCount(I)V
.locals 0
.line 1
iput p1, p0, Lokhttp3/internal/cache2/Relay;->sourceCount:I
return-void
.end method
.method public final setUpstream(Lzj/m0;)V
.locals 0
.param p1 # Lzj/m0;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end param
.line 1
iput-object p1, p0, Lokhttp3/internal/cache2/Relay;->upstream:Lzj/m0;
return-void
.end method
.method public final setUpstreamPos(J)V
.locals 0
.line 1
iput-wide p1, p0, Lokhttp3/internal/cache2/Relay;->upstreamPos:J
return-void
.end method
.method public final setUpstreamReader(Ljava/lang/Thread;)V
.locals 0
.param p1 # Ljava/lang/Thread;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end param
.line 1
iput-object p1, p0, Lokhttp3/internal/cache2/Relay;->upstreamReader:Ljava/lang/Thread;
return-void
.end method