public class org.fusesource.hawtdispatch.transport.PipeTransport extends java.lang.Object implements org.fusesource.hawtdispatch.transport.Transport
{
private static final java.lang.Object EOF_TOKEN;
private final org.fusesource.hawtdispatch.transport.PipeTransportServer server;
org.fusesource.hawtdispatch.transport.PipeTransport peer;
private org.fusesource.hawtdispatch.transport.TransportListener listener;
private java.net.SocketAddress remoteAddress;
private java.util.concurrent.atomic.AtomicBoolean stopping;
private java.lang.String name;
private boolean marshal;
private boolean trace;
private org.fusesource.hawtdispatch.DispatchQueue dispatchQueue;
private org.fusesource.hawtdispatch.CustomDispatchSource dispatchSource;
private boolean connected;
private long writeCounter;
private long readCounter;
private org.fusesource.hawtdispatch.transport.ProtocolCodec protocolCodec;
int outbound;
int maxOutbound;
public void <init>(org.fusesource.hawtdispatch.transport.PipeTransportServer)
{
java.util.concurrent.atomic.AtomicBoolean v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
org.fusesource.hawtdispatch.transport.PipeTransportServer v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: org.fusesource.hawtdispatch.transport.PipeTransportServer;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.fusesource.hawtdispatch.transport.PipeTransport: java.util.concurrent.atomic.AtomicBoolean stopping> = v;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: long writeCounter> = 0L;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: long readCounter> = 0L;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: int outbound> = 0;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: int maxOutbound> = 100;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.PipeTransportServer server> = v;
return;
}
public org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()
{
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue>;
return v;
}
public void setDispatchQueue(org.fusesource.hawtdispatch.DispatchQueue)
{
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: org.fusesource.hawtdispatch.DispatchQueue;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue> = v;
return;
}
public void start(java.lang.Runnable)
{
org.fusesource.hawtdispatch.TaskWrapper v;
java.lang.Runnable v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: java.lang.Runnable;
v = new org.fusesource.hawtdispatch.TaskWrapper;
specialinvoke v.<org.fusesource.hawtdispatch.TaskWrapper: void <init>(java.lang.Runnable)>(v);
virtualinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport: void start(org.fusesource.hawtdispatch.Task)>(v);
return;
}
public void start(org.fusesource.hawtdispatch.Task)
{
org.fusesource.hawtdispatch.Task v;
org.fusesource.hawtdispatch.transport.PipeTransport$1 v;
org.fusesource.hawtdispatch.transport.PipeTransportServer v;
org.fusesource.hawtdispatch.DispatchQueue v, v;
java.lang.IllegalArgumentException v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: org.fusesource.hawtdispatch.Task;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue>;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("dispatchQueue is not set");
throw v;
label:
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.PipeTransportServer server>;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransportServer: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue>;
v = new org.fusesource.hawtdispatch.transport.PipeTransport$1;
specialinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport$1: void <init>(org.fusesource.hawtdispatch.transport.PipeTransport,org.fusesource.hawtdispatch.Task)>(v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return;
}
private void fireConnected()
{
org.fusesource.hawtdispatch.transport.PipeTransport$2 v;
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue>;
v = new org.fusesource.hawtdispatch.transport.PipeTransport$2;
specialinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport$2: void <init>(org.fusesource.hawtdispatch.transport.PipeTransport)>(v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return;
}
public void flush()
{
org.fusesource.hawtdispatch.transport.TransportListener v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.TransportListener listener>;
interfaceinvoke v.<org.fusesource.hawtdispatch.transport.TransportListener: void onRefill()>();
return;
}
public void stop(java.lang.Runnable)
{
org.fusesource.hawtdispatch.TaskWrapper v;
java.lang.Runnable v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: java.lang.Runnable;
v = new org.fusesource.hawtdispatch.TaskWrapper;
specialinvoke v.<org.fusesource.hawtdispatch.TaskWrapper: void <init>(java.lang.Runnable)>(v);
virtualinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport: void stop(org.fusesource.hawtdispatch.Task)>(v);
return;
}
public void stop(org.fusesource.hawtdispatch.Task)
{
org.fusesource.hawtdispatch.Task v;
org.fusesource.hawtdispatch.CustomDispatchSource v, v, v, v;
java.lang.Object v;
org.fusesource.hawtdispatch.transport.PipeTransport v, v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: org.fusesource.hawtdispatch.Task;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: boolean connected>;
if v == 0 goto label;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.PipeTransport peer>;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.CustomDispatchSource dispatchSource>;
v = <org.fusesource.hawtdispatch.transport.PipeTransport: java.lang.Object EOF_TOKEN>;
interfaceinvoke v.<org.fusesource.hawtdispatch.CustomDispatchSource: void merge(java.lang.Object)>(v);
label:
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.CustomDispatchSource dispatchSource>;
if v == null goto label;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.CustomDispatchSource dispatchSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.CustomDispatchSource: void setCancelHandler(org.fusesource.hawtdispatch.Task)>(v);
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.CustomDispatchSource dispatchSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.CustomDispatchSource: void cancel()>();
label:
virtualinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport: void setDispatchQueue(org.fusesource.hawtdispatch.DispatchQueue)>(null);
return;
}
public boolean full()
{
int v, v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: int outbound>;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: int maxOutbound>;
if v < v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean offer(java.lang.Object)
{
java.lang.Object v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
boolean v, v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: java.lang.Object;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: boolean connected>;
if v != 0 goto label;
return 0;
label:
v = virtualinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport: boolean full()>();
if v == 0 goto label;
return 0;
label:
specialinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport: void transmit(java.lang.Object)>(v);
return 1;
}
public void drainInbound()
{
org.fusesource.hawtdispatch.transport.TransportListener v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = virtualinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport: boolean full()>();
if v != 0 goto label;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.TransportListener listener>;
interfaceinvoke v.<org.fusesource.hawtdispatch.transport.TransportListener: void onRefill()>();
label:
return;
}
private void transmit(java.lang.Object)
{
long v, v;
org.fusesource.hawtdispatch.CustomDispatchSource v;
int v, v;
java.lang.Object v;
org.fusesource.hawtdispatch.transport.PipeTransport v, v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: java.lang.Object;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: long writeCounter>;
v = v + 1L;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: long writeCounter> = v;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: int outbound>;
v = v + 1;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: int outbound> = v;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.PipeTransport peer>;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.CustomDispatchSource dispatchSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.CustomDispatchSource: void merge(java.lang.Object)>(v);
return;
}
public long getWriteCounter()
{
long v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: long writeCounter>;
return v;
}
public long getReadCounter()
{
long v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: long readCounter>;
return v;
}
public java.net.SocketAddress getLocalAddress()
{
java.net.SocketAddress v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: java.net.SocketAddress remoteAddress>;
return v;
}
public java.net.SocketAddress getRemoteAddress()
{
java.net.SocketAddress v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: java.net.SocketAddress remoteAddress>;
return v;
}
public void suspendRead()
{
org.fusesource.hawtdispatch.CustomDispatchSource v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.CustomDispatchSource dispatchSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.CustomDispatchSource: void suspend()>();
return;
}
public void resumeRead()
{
org.fusesource.hawtdispatch.CustomDispatchSource v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.CustomDispatchSource dispatchSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.CustomDispatchSource: void resume()>();
return;
}
public void setRemoteAddress(java.lang.String)
{
org.fusesource.hawtdispatch.transport.PipeTransport$3 v;
java.lang.String v, v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: java.lang.String;
v = new org.fusesource.hawtdispatch.transport.PipeTransport$3;
specialinvoke v.<org.fusesource.hawtdispatch.transport.PipeTransport$3: void <init>(org.fusesource.hawtdispatch.transport.PipeTransport,java.lang.String)>(v, v);
v.<org.fusesource.hawtdispatch.transport.PipeTransport: java.net.SocketAddress remoteAddress> = v;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: java.lang.String name>;
if v != null goto label;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: java.lang.String name> = v;
label:
return;
}
public void setName(java.lang.String)
{
java.lang.String v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: java.lang.String;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: java.lang.String name> = v;
return;
}
public org.fusesource.hawtdispatch.transport.TransportListener getTransportListener()
{
org.fusesource.hawtdispatch.transport.TransportListener v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.TransportListener listener>;
return v;
}
public void setTransportListener(org.fusesource.hawtdispatch.transport.TransportListener)
{
org.fusesource.hawtdispatch.transport.TransportListener v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: org.fusesource.hawtdispatch.transport.TransportListener;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.TransportListener listener> = v;
return;
}
public org.fusesource.hawtdispatch.transport.ProtocolCodec getProtocolCodec()
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
org.fusesource.hawtdispatch.transport.ProtocolCodec v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.ProtocolCodec protocolCodec>;
return v;
}
public void setProtocolCodec(org.fusesource.hawtdispatch.transport.ProtocolCodec)
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
org.fusesource.hawtdispatch.transport.ProtocolCodec v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: org.fusesource.hawtdispatch.transport.ProtocolCodec;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: org.fusesource.hawtdispatch.transport.ProtocolCodec protocolCodec> = v;
return;
}
public boolean isTrace()
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: boolean trace>;
return v;
}
public void setTrace(boolean)
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: boolean;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: boolean trace> = v;
return;
}
public boolean isMarshal()
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: boolean marshal>;
return v;
}
public void setMarshal(boolean)
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: boolean;
v.<org.fusesource.hawtdispatch.transport.PipeTransport: boolean marshal> = v;
return;
}
public boolean isConnected()
{
java.util.concurrent.atomic.AtomicBoolean v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
boolean v, v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v = v.<org.fusesource.hawtdispatch.transport.PipeTransport: java.util.concurrent.atomic.AtomicBoolean stopping>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isClosed()
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
return 0;
}
public java.util.concurrent.Executor getBlockingExecutor()
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
return null;
}
public void setBlockingExecutor(java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
v := @parameter: java.util.concurrent.Executor;
return;
}
public java.nio.channels.ReadableByteChannel getReadChannel()
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
return null;
}
public java.nio.channels.WritableByteChannel getWriteChannel()
{
org.fusesource.hawtdispatch.transport.PipeTransport v;
v := @this: org.fusesource.hawtdispatch.transport.PipeTransport;
return null;
}
static void <clinit>()
{
java.lang.Object v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<org.fusesource.hawtdispatch.transport.PipeTransport: java.lang.Object EOF_TOKEN> = v;
return;
}
}