public class org.apache.http.impl.io.ContentLengthOutputStream extends java.io.OutputStream
{
private final org.apache.http.io.SessionOutputBuffer out;
private final long contentLength;
private long total;
private boolean closed;
public void <init>(org.apache.http.io.SessionOutputBuffer, long)
{
org.apache.http.io.SessionOutputBuffer v;
org.apache.http.impl.io.ContentLengthOutputStream v;
java.lang.Object v;
long v, v;
v := @this: org.apache.http.impl.io.ContentLengthOutputStream;
v := @parameter: org.apache.http.io.SessionOutputBuffer;
v := @parameter: long;
specialinvoke v.<java.io.OutputStream: void <init>()>();
v = staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Session output buffer");
v.<org.apache.http.impl.io.ContentLengthOutputStream: org.apache.http.io.SessionOutputBuffer out> = v;
v = staticinvoke <org.apache.http.util.Args: long notNegative(long,java.lang.String)>(v, "Content length");
v.<org.apache.http.impl.io.ContentLengthOutputStream: long contentLength> = v;
return;
}
public void close() throws java.io.IOException
{
org.apache.http.io.SessionOutputBuffer v;
org.apache.http.impl.io.ContentLengthOutputStream v;
boolean v;
v := @this: org.apache.http.impl.io.ContentLengthOutputStream;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: boolean closed>;
if v != 0 goto label;
v.<org.apache.http.impl.io.ContentLengthOutputStream: boolean closed> = 1;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void flush()>();
label:
return;
}
public void flush() throws java.io.IOException
{
org.apache.http.io.SessionOutputBuffer v;
org.apache.http.impl.io.ContentLengthOutputStream v;
v := @this: org.apache.http.impl.io.ContentLengthOutputStream;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void flush()>();
return;
}
public void write(byte[], int, int) throws java.io.IOException
{
byte[] v;
long v, v, v, v, v, v, v;
byte v, v;
org.apache.http.io.SessionOutputBuffer v;
org.apache.http.impl.io.ContentLengthOutputStream v;
int v, v;
boolean v;
java.io.IOException v;
v := @this: org.apache.http.impl.io.ContentLengthOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: boolean closed>;
if v == 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Attempted write to closed stream.");
throw v;
label:
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: long total>;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: long contentLength>;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: long contentLength>;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: long total>;
v = v - v;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void write(byte[],int,int)>(v, v, v);
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: long total>;
v = v + v;
v.<org.apache.http.impl.io.ContentLengthOutputStream: long total> = v;
label:
return;
}
public void write(byte[]) throws java.io.IOException
{
int v;
byte[] v;
org.apache.http.impl.io.ContentLengthOutputStream v;
v := @this: org.apache.http.impl.io.ContentLengthOutputStream;
v := @parameter: byte[];
v = lengthof v;
virtualinvoke v.<org.apache.http.impl.io.ContentLengthOutputStream: void write(byte[],int,int)>(v, 0, v);
return;
}
public void write(int) throws java.io.IOException
{
java.io.IOException v;
long v, v, v, v;
byte v;
org.apache.http.io.SessionOutputBuffer v;
org.apache.http.impl.io.ContentLengthOutputStream v;
int v;
boolean v;
v := @this: org.apache.http.impl.io.ContentLengthOutputStream;
v := @parameter: int;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: boolean closed>;
if v == 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Attempted write to closed stream.");
throw v;
label:
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: long total>;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: long contentLength>;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: org.apache.http.io.SessionOutputBuffer out>;
interfaceinvoke v.<org.apache.http.io.SessionOutputBuffer: void write(int)>(v);
v = v.<org.apache.http.impl.io.ContentLengthOutputStream: long total>;
v = v + 1L;
v.<org.apache.http.impl.io.ContentLengthOutputStream: long total> = v;
label:
return;
}
}