public class org.apache.activemq.transport.tcp.TcpBufferedOutputStream extends java.io.FilterOutputStream implements org.apache.activemq.transport.tcp.TimeStampStream
{
private static final int BUFFER_SIZE;
private byte[] buffer;
private int bufferlen;
private int count;
private volatile long writeTimestamp;
public void <init>(java.io.OutputStream)
{
java.io.OutputStream v;
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
v := @this: org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
v := @parameter: java.io.OutputStream;
specialinvoke v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: void <init>(java.io.OutputStream,int)>(v, 8192);
return;
}
public void <init>(java.io.OutputStream, int)
{
java.io.OutputStream v;
byte[] v;
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
int v;
java.lang.IllegalArgumentException v;
v := @this: org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
v := @parameter: java.io.OutputStream;
v := @parameter: int;
specialinvoke v.<java.io.FilterOutputStream: void <init>(java.io.OutputStream)>(v);
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp> = -1L;
if v > 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Buffer size <= 0");
throw v;
label:
v = newarray (byte)[v];
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: byte[] buffer> = v;
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int bufferlen> = v;
return;
}
public void write(int) throws java.io.IOException
{
byte[] v;
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
int v, v, v, v, v, v;
v := @this: org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
v := @parameter: int;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int bufferlen>;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count>;
v = v - v;
if v >= 1 goto label;
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: void flush()>();
label:
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: byte[] buffer>;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count>;
v = v + 1;
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count> = v;
v[v] = v;
return;
}
public void write(byte[], int, int) throws java.io.IOException
{
java.lang.Throwable v;
byte[] v, v, v;
long v;
int v, v, v, v, v, v, v, v, v;
java.io.OutputStream v;
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
v := @this: org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
if v == null goto label;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int bufferlen>;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count>;
v = v - v;
if v >= v goto label;
virtualinvoke v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: void flush()>();
label:
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: byte[] buffer>;
v = lengthof v;
if v < v goto label;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: byte[] buffer>;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count>;
v = v + v;
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count> = v;
goto label;
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp> = v;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: java.io.OutputStream out>;
virtualinvoke v.<java.io.OutputStream: void write(byte[],int,int)>(v, v, v);
label:
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp> = -1L;
goto label;
label:
v := @caughtexception;
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp> = -1L;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void flush() throws java.io.IOException
{
java.io.OutputStream v, v;
java.lang.Throwable v;
byte[] v;
long v;
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
int v, v;
v := @this: org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count>;
if v <= 0 goto label;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: java.io.OutputStream out>;
if v == null goto label;
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp> = v;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: java.io.OutputStream out>;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: byte[] buffer>;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count>;
virtualinvoke v.<java.io.OutputStream: void write(byte[],int,int)>(v, 0, v);
label:
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp> = -1L;
goto label;
label:
v := @caughtexception;
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp> = -1L;
throw v;
label:
v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: int count> = 0;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void close() throws java.io.IOException
{
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
v := @this: org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
specialinvoke v.<java.io.FilterOutputStream: void close()>();
return;
}
public boolean isWriting()
{
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
byte v;
long v;
boolean v;
v := @this: org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp>;
v = v cmp 0L;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public long getWriteTimestamp()
{
long v;
org.apache.activemq.transport.tcp.TcpBufferedOutputStream v;
v := @this: org.apache.activemq.transport.tcp.TcpBufferedOutputStream;
v = v.<org.apache.activemq.transport.tcp.TcpBufferedOutputStream: long writeTimestamp>;
return v;
}
}