.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", "", "(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 ()V .locals 2 new-instance v0, Lokhttp3/internal/cache2/Relay$Companion; const/4 v1, 0x0 invoke-direct {v0, v1}, Lokhttp3/internal/cache2/Relay$Companion;->(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 (Ljava/io/RandomAccessFile;Lzj/m0;JLokio/ByteString;J)V .locals 0 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()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;->()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;->()V iput-object p1, p0, Lokhttp3/internal/cache2/Relay;->buffer:Lzj/m; return-void .end method .method public synthetic constructor (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;->(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;->()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;->(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;->(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;->()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;->(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;->(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