.class public Lorg/apache/http/impl/io/ContentLengthOutputStream; .super Ljava/io/OutputStream; .source "ContentLengthOutputStream.java" # instance fields .field private closed:Z .field private final contentLength:J .field private final out:Lorg/apache/http/io/SessionOutputBuffer; .field private total:J # direct methods .method public constructor (Lorg/apache/http/io/SessionOutputBuffer;J)V .registers 6 .line 79 invoke-direct {p0}, Ljava/io/OutputStream;->()V const-wide/16 v0, 0x0 .line 63 iput-wide v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->total:J const/4 v0, 0x0 .line 66 iput-boolean v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->closed:Z .line 80 const-string v0, "Session output buffer" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lorg/apache/http/io/SessionOutputBuffer; iput-object p1, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->out:Lorg/apache/http/io/SessionOutputBuffer; .line 81 const-string p1, "Content length" invoke-static {p2, p3, p1}, Lorg/apache/http/util/Args;->notNegative(JLjava/lang/String;)J move-result-wide p1 iput-wide p1, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->contentLength:J return-void .end method # virtual methods .method public close()V .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 91 iget-boolean v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->closed:Z if-nez v0, :cond_c const/4 v0, 0x1 .line 92 iput-boolean v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->closed:Z .line 93 iget-object v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->out:Lorg/apache/http/io/SessionOutputBuffer; invoke-interface {v0}, Lorg/apache/http/io/SessionOutputBuffer;->flush()V :cond_c return-void .end method .method public flush()V .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 99 iget-object v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->out:Lorg/apache/http/io/SessionOutputBuffer; invoke-interface {v0}, Lorg/apache/http/io/SessionOutputBuffer;->flush()V return-void .end method .method public write(I)V .registers 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 125 iget-boolean v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->closed:Z if-nez v0, :cond_19 .line 128 iget-wide v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->total:J iget-wide v2, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->contentLength:J cmp-long v0, v0, v2 if-gez v0, :cond_18 .line 129 iget-object v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->out:Lorg/apache/http/io/SessionOutputBuffer; invoke-interface {v0, p1}, Lorg/apache/http/io/SessionOutputBuffer;->write(I)V .line 130 iget-wide v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->total:J const-wide/16 v2, 0x1 add-long/2addr v0, v2 iput-wide v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->total:J :cond_18 return-void .line 126 :cond_19 new-instance p1, Ljava/io/IOException; const-string v0, "Attempted write to closed stream." invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 .end method .method public write([B)V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 .line 120 array-length v1, p1 invoke-virtual {p0, p1, v0, v1}, Lorg/apache/http/impl/io/ContentLengthOutputStream;->write([BII)V return-void .end method .method public write([BII)V .registers 9 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 104 iget-boolean v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->closed:Z if-nez v0, :cond_1f .line 107 iget-wide v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->total:J iget-wide v2, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->contentLength:J cmp-long v4, v0, v2 if-gez v4, :cond_1e sub-long/2addr v2, v0 int-to-long v0, p3 cmp-long v0, v0, v2 if-lez v0, :cond_13 long-to-int p3, v2 .line 113 :cond_13 iget-object v0, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->out:Lorg/apache/http/io/SessionOutputBuffer; invoke-interface {v0, p1, p2, p3}, Lorg/apache/http/io/SessionOutputBuffer;->write([BII)V .line 114 iget-wide p1, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->total:J int-to-long v0, p3 add-long/2addr p1, v0 iput-wide p1, p0, Lorg/apache/http/impl/io/ContentLengthOutputStream;->total:J :cond_1e return-void .line 105 :cond_1f new-instance p1, Ljava/io/IOException; const-string p2, "Attempted write to closed stream." invoke-direct {p1, p2}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 .end method