AtomicFile$AtomicFileOutputStream.smali
.class final Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;
.super Ljava/io/OutputStream;
.source "AtomicFile.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/util/AtomicFile;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "AtomicFileOutputStream"
.end annotation
# instance fields
.field private closed:Z
.field private final fileOutputStream:Ljava/io/FileOutputStream;
# direct methods
.method public constructor <init>(Ljava/io/File;)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/FileNotFoundException;
}
.end annotation
.line 158
invoke-direct {p0}, Ljava/io/OutputStream;-><init>()V
const/4 v0, 0x0
.line 156
iput-boolean v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->closed:Z
.line 159
new-instance v0, Ljava/io/FileOutputStream;
invoke-direct {v0, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->fileOutputStream:Ljava/io/FileOutputStream;
return-void
.end method
# virtual methods
.method public close()V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 164
iget-boolean v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->closed:Z
if-eqz v0, :cond_5
return-void
:cond_5
const/4 v0, 0x1
.line 167
iput-boolean v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->closed:Z
.line 168
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->flush()V
.line 170
:try_start_b
iget-object v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->fileOutputStream:Ljava/io/FileOutputStream;
invoke-virtual {v0}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
move-result-object v0
invoke-virtual {v0}, Ljava/io/FileDescriptor;->sync()V
:try_end_14
.catch Ljava/io/IOException; {:try_start_b .. :try_end_14} :catch_15
goto :goto_1d
:catch_15
move-exception v0
const-string v1, "AtomicFile"
const-string v2, "Failed to sync file descriptor:"
.line 172
invoke-static {v1, v2, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 174
:goto_1d
iget-object v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->fileOutputStream:Ljava/io/FileOutputStream;
invoke-virtual {v0}, Ljava/io/FileOutputStream;->close()V
return-void
.end method
.method public flush()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 179
iget-object v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->fileOutputStream:Ljava/io/FileOutputStream;
invoke-virtual {v0}, Ljava/io/FileOutputStream;->flush()V
return-void
.end method
.method public write(I)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 184
iget-object v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->fileOutputStream:Ljava/io/FileOutputStream;
invoke-virtual {v0, p1}, Ljava/io/FileOutputStream;->write(I)V
return-void
.end method
.method public write([B)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 189
iget-object v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->fileOutputStream:Ljava/io/FileOutputStream;
invoke-virtual {v0, p1}, Ljava/io/FileOutputStream;->write([B)V
return-void
.end method
.method public write([BII)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 194
iget-object v0, p0, Lcom/google/android/exoplayer2/util/AtomicFile$AtomicFileOutputStream;->fileOutputStream:Ljava/io/FileOutputStream;
invoke-virtual {v0, p1, p2, p3}, Ljava/io/FileOutputStream;->write([BII)V
return-void
.end method