public class org.fusesource.hawtdispatch.transport.TcpTransportServer extends java.lang.Object implements org.fusesource.hawtdispatch.transport.TransportServer
{
protected final java.lang.String bindScheme;
protected final java.net.InetSocketAddress bindAddress;
protected int backlog;
protected java.nio.channels.ServerSocketChannel channel;
protected org.fusesource.hawtdispatch.transport.TransportServerListener listener;
protected org.fusesource.hawtdispatch.DispatchQueue dispatchQueue;
protected org.fusesource.hawtdispatch.DispatchSource acceptSource;
protected int receiveBufferSize;
protected int sendBufferSize;
protected java.util.concurrent.Executor blockingExecutor;
public void <init>(java.net.URI) throws java.net.UnknownHostException
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.net.InetSocketAddress v;
java.net.InetAddress v;
int v, v;
java.lang.String v, v, v;
java.net.URI v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: java.net.URI;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int backlog> = 100;
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int receiveBufferSize> = 65536;
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int sendBufferSize> = 65536;
v = virtualinvoke v.<java.net.URI: java.lang.String getScheme()>();
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.lang.String bindScheme> = v;
v = virtualinvoke v.<java.net.URI: java.lang.String getHost()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v != 0 goto label;
label:
v = "::";
goto label;
label:
v = v;
label:
v = new java.net.InetSocketAddress;
v = staticinvoke <java.net.InetAddress: java.net.InetAddress getByName(java.lang.String)>(v);
v = virtualinvoke v.<java.net.URI: int getPort()>();
specialinvoke v.<java.net.InetSocketAddress: void <init>(java.net.InetAddress,int)>(v, v);
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.net.InetSocketAddress bindAddress> = v;
return;
}
public void setTransportServerListener(org.fusesource.hawtdispatch.transport.TransportServerListener)
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.transport.TransportServerListener v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: org.fusesource.hawtdispatch.transport.TransportServerListener;
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.transport.TransportServerListener listener> = v;
return;
}
public java.net.InetSocketAddress getSocketAddress()
{
java.net.ServerSocket v;
java.net.SocketAddress v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.nio.channels.ServerSocketChannel v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
v = virtualinvoke v.<java.nio.channels.ServerSocketChannel: java.net.ServerSocket socket()>();
v = virtualinvoke v.<java.net.ServerSocket: java.net.SocketAddress getLocalSocketAddress()>();
return v;
}
public org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.DispatchQueue v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue>;
return v;
}
public void setDispatchQueue(org.fusesource.hawtdispatch.DispatchQueue)
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.DispatchQueue v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: org.fusesource.hawtdispatch.DispatchQueue;
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue> = v;
return;
}
public void suspend()
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.DispatchSource v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchSource: void suspend()>();
return;
}
public void resume()
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.DispatchSource v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchSource: void resume()>();
return;
}
public void start(java.lang.Runnable) throws java.lang.Exception
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.TaskWrapper v;
java.lang.Runnable v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
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.TcpTransportServer: void start(org.fusesource.hawtdispatch.Task)>(v);
return;
}
public void stop(java.lang.Runnable) throws java.lang.Exception
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.TaskWrapper v;
java.lang.Runnable v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
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.TcpTransportServer: void stop(org.fusesource.hawtdispatch.Task)>(v);
return;
}
public void start(org.fusesource.hawtdispatch.Task) throws java.lang.Exception
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.net.ServerSocket v, v, v;
java.net.SocketException v, v;
int v, v, v;
java.lang.String v;
org.fusesource.hawtdispatch.Task v;
java.io.IOException v, v;
org.fusesource.hawtdispatch.DispatchQueue v, v;
java.net.InetSocketAddress v, v;
java.nio.channels.ServerSocketChannel v, v, v, v, v, v;
org.fusesource.hawtdispatch.transport.TcpTransportServer$2 v;
org.fusesource.hawtdispatch.transport.TcpTransportServer$1 v;
org.fusesource.hawtdispatch.DispatchSource v, v, v, v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: org.fusesource.hawtdispatch.Task;
label:
v = staticinvoke <java.nio.channels.ServerSocketChannel: java.nio.channels.ServerSocketChannel open()>();
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel> = v;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
virtualinvoke v.<java.nio.channels.ServerSocketChannel: java.nio.channels.SelectableChannel configureBlocking(boolean)>(0);
label:
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
v = virtualinvoke v.<java.nio.channels.ServerSocketChannel: java.net.ServerSocket socket()>();
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int receiveBufferSize>;
virtualinvoke v.<java.net.ServerSocket: void setReceiveBufferSize(int)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
v = virtualinvoke v.<java.nio.channels.ServerSocketChannel: java.net.ServerSocket socket()>();
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int sendBufferSize>;
virtualinvoke v.<java.net.ServerSocket: void setReceiveBufferSize(int)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
v = virtualinvoke v.<java.nio.channels.ServerSocketChannel: java.net.ServerSocket socket()>();
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.net.InetSocketAddress bindAddress>;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int backlog>;
virtualinvoke v.<java.net.ServerSocket: void bind(java.net.SocketAddress,int)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.net.InetSocketAddress bindAddress>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.InetSocketAddress,java.io.IOException)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to bind to server socket: \u due to: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue>;
v = staticinvoke <org.fusesource.hawtdispatch.Dispatch: org.fusesource.hawtdispatch.DispatchSource createSource(java.nio.channels.SelectableChannel,int,org.fusesource.hawtdispatch.DispatchQueue)>(v, 16, v);
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource> = v;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource>;
v = new org.fusesource.hawtdispatch.transport.TcpTransportServer$1;
specialinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransportServer$1: void <init>(org.fusesource.hawtdispatch.transport.TcpTransportServer)>(v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchSource: void setEventHandler(org.fusesource.hawtdispatch.Task)>(v);
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource>;
v = new org.fusesource.hawtdispatch.transport.TcpTransportServer$2;
specialinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransportServer$2: void <init>(org.fusesource.hawtdispatch.transport.TcpTransportServer)>(v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchSource: void setCancelHandler(org.fusesource.hawtdispatch.Task)>(v);
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchSource: void resume()>();
if v == null goto label;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue>;
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
label:
return;
catch java.net.SocketException from label to label with label;
catch java.net.SocketException from label to label with label;
catch java.io.IOException from label to label with label;
}
public java.lang.String getBoundAddress()
{
java.net.URISyntaxException v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.lang.RuntimeException v;
java.net.InetSocketAddress v;
java.nio.channels.ServerSocketChannel v;
java.net.InetAddress v;
java.net.ServerSocket v;
int v;
java.lang.String v, v, v;
java.net.URI v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
label:
v = new java.net.URI;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.lang.String bindScheme>;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.net.InetSocketAddress bindAddress>;
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetAddress: java.lang.String getHostAddress()>();
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
v = virtualinvoke v.<java.nio.channels.ServerSocketChannel: java.net.ServerSocket socket()>();
v = virtualinvoke v.<java.net.ServerSocket: int getLocalPort()>();
specialinvoke v.<java.net.URI: void <init>(java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)>(v, null, v, v, null, null, null);
v = virtualinvoke v.<java.net.URI: java.lang.String toString()>();
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.net.URISyntaxException from label to label with label;
}
public void stop(org.fusesource.hawtdispatch.Task) throws java.lang.Exception
{
org.fusesource.hawtdispatch.transport.TcpTransportServer$3 v;
org.fusesource.hawtdispatch.Task v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.DispatchSource v, v, v;
boolean v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: org.fusesource.hawtdispatch.Task;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource>;
v = interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchSource: boolean isCanceled()>();
if v == 0 goto label;
virtualinvoke v.<org.fusesource.hawtdispatch.Task: void run()>();
goto label;
label:
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource>;
v = new org.fusesource.hawtdispatch.transport.TcpTransportServer$3;
specialinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransportServer$3: void <init>(org.fusesource.hawtdispatch.transport.TcpTransportServer,org.fusesource.hawtdispatch.Task)>(v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchSource: void setCancelHandler(org.fusesource.hawtdispatch.Task)>(v);
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchSource acceptSource>;
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchSource: void cancel()>();
label:
return;
}
public int getBacklog()
{
int v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int backlog>;
return v;
}
public void setBacklog(int)
{
int v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: int;
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int backlog> = v;
return;
}
protected final void handleSocket(java.nio.channels.SocketChannel) throws java.lang.Exception
{
org.fusesource.hawtdispatch.transport.TcpTransport v;
java.nio.channels.SocketChannel v;
org.fusesource.hawtdispatch.transport.TransportServerListener v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: java.nio.channels.SocketChannel;
v = virtualinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.transport.TcpTransport createTransport()>();
virtualinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransport: void connected(java.nio.channels.SocketChannel)>(v);
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.transport.TransportServerListener listener>;
interfaceinvoke v.<org.fusesource.hawtdispatch.transport.TransportServerListener: void onAccept(org.fusesource.hawtdispatch.transport.Transport)>(v);
return;
}
protected org.fusesource.hawtdispatch.transport.TcpTransport createTransport()
{
org.fusesource.hawtdispatch.transport.TcpTransport v;
java.util.concurrent.Executor v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
org.fusesource.hawtdispatch.DispatchQueue v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = new org.fusesource.hawtdispatch.transport.TcpTransport;
specialinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransport: void <init>()>();
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.util.concurrent.Executor blockingExecutor>;
virtualinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransport: void setBlockingExecutor(java.util.concurrent.Executor)>(v);
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: org.fusesource.hawtdispatch.DispatchQueue dispatchQueue>;
virtualinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransport: void setDispatchQueue(org.fusesource.hawtdispatch.DispatchQueue)>(v);
return v;
}
public java.lang.String toString()
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.lang.String v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = virtualinvoke v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.lang.String getBoundAddress()>();
return v;
}
public int getReceiveBufferSize()
{
int v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int receiveBufferSize>;
return v;
}
public void setReceiveBufferSize(int)
{
java.net.ServerSocket v;
java.net.SocketException v;
int v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.nio.channels.ServerSocketChannel v, v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: int;
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int receiveBufferSize> = v;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
if v == null goto label;
label:
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
v = virtualinvoke v.<java.nio.channels.ServerSocketChannel: java.net.ServerSocket socket()>();
virtualinvoke v.<java.net.ServerSocket: void setReceiveBufferSize(int)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.net.SocketException from label to label with label;
}
public int getSendBufferSize()
{
int v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int sendBufferSize>;
return v;
}
public void setSendBufferSize(int)
{
java.net.ServerSocket v;
java.net.SocketException v;
int v;
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.nio.channels.ServerSocketChannel v, v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: int;
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: int sendBufferSize> = v;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
if v == null goto label;
label:
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.nio.channels.ServerSocketChannel channel>;
v = virtualinvoke v.<java.nio.channels.ServerSocketChannel: java.net.ServerSocket socket()>();
virtualinvoke v.<java.net.ServerSocket: void setReceiveBufferSize(int)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.net.SocketException from label to label with label;
}
public java.util.concurrent.Executor getBlockingExecutor()
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.util.concurrent.Executor v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v = v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.util.concurrent.Executor blockingExecutor>;
return v;
}
public void setBlockingExecutor(java.util.concurrent.Executor)
{
org.fusesource.hawtdispatch.transport.TcpTransportServer v;
java.util.concurrent.Executor v;
v := @this: org.fusesource.hawtdispatch.transport.TcpTransportServer;
v := @parameter: java.util.concurrent.Executor;
v.<org.fusesource.hawtdispatch.transport.TcpTransportServer: java.util.concurrent.Executor blockingExecutor> = v;
return;
}
}