public class org.fusesource.mqtt.client.FutureConnection extends java.lang.Object
{
private final org.fusesource.mqtt.client.CallbackConnection next;
private final java.util.LinkedList receiveFutures;
private final java.util.LinkedList receivedFrames;
private volatile boolean connected;
private long receiveBuffer;
private long receiveBufferRemaining;
private boolean receiveBufferFull;
public void <init>(org.fusesource.mqtt.client.CallbackConnection)
{
org.fusesource.mqtt.client.FutureConnection$1 v;
org.fusesource.mqtt.client.FutureConnection v;
long v;
java.util.LinkedList v, v;
org.fusesource.mqtt.client.CallbackConnection v, v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: org.fusesource.mqtt.client.CallbackConnection;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.fusesource.mqtt.client.FutureConnection: java.util.LinkedList receiveFutures> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.fusesource.mqtt.client.FutureConnection: java.util.LinkedList receivedFrames> = v;
v.<org.fusesource.mqtt.client.FutureConnection: long receiveBuffer> = 1048576L;
v = v.<org.fusesource.mqtt.client.FutureConnection: long receiveBuffer>;
v.<org.fusesource.mqtt.client.FutureConnection: long receiveBufferRemaining> = v;
v.<org.fusesource.mqtt.client.FutureConnection: boolean receiveBufferFull> = 0;
v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next> = v;
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
v = new org.fusesource.mqtt.client.FutureConnection$1;
specialinvoke v.<org.fusesource.mqtt.client.FutureConnection$1: void <init>(org.fusesource.mqtt.client.FutureConnection)>(v);
virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: org.fusesource.mqtt.client.CallbackConnection listener(org.fusesource.mqtt.client.Listener)>(v);
return;
}
void deliverMessage(org.fusesource.mqtt.client.Message)
{
org.fusesource.mqtt.client.Message v;
org.fusesource.mqtt.client.FutureConnection v;
java.lang.Object v;
java.util.LinkedList v, v, v;
boolean v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: org.fusesource.mqtt.client.Message;
v = v.<org.fusesource.mqtt.client.FutureConnection: java.util.LinkedList receiveFutures>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.fusesource.mqtt.client.FutureConnection: java.util.LinkedList receivedFrames>;
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.fusesource.mqtt.client.FutureConnection: java.util.LinkedList receiveFutures>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object removeFirst()>();
virtualinvoke v.<org.fusesource.mqtt.client.Promise: void onSuccess(java.lang.Object)>(v);
label:
return;
}
void putBackMessage(org.fusesource.mqtt.client.Message)
{
org.fusesource.mqtt.client.Message v;
org.fusesource.mqtt.client.FutureConnection v;
java.lang.Object v;
java.util.LinkedList v, v, v;
boolean v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: org.fusesource.mqtt.client.Message;
v = v.<org.fusesource.mqtt.client.FutureConnection: java.util.LinkedList receiveFutures>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.fusesource.mqtt.client.FutureConnection: java.util.LinkedList receivedFrames>;
virtualinvoke v.<java.util.LinkedList: void addFirst(java.lang.Object)>(v);
goto label;
label:
v = v.<org.fusesource.mqtt.client.FutureConnection: java.util.LinkedList receiveFutures>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object removeFirst()>();
virtualinvoke v.<org.fusesource.mqtt.client.Promise: void onSuccess(java.lang.Object)>(v);
label:
return;
}
public boolean isConnected()
{
org.fusesource.mqtt.client.FutureConnection v;
boolean v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = v.<org.fusesource.mqtt.client.FutureConnection: boolean connected>;
return v;
}
public org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()
{
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.CallbackConnection v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
v = virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
return v;
}
public org.fusesource.mqtt.client.Future connect()
{
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.Promise v;
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.mqtt.client.CallbackConnection v;
org.fusesource.mqtt.client.FutureConnection$2 v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = new org.fusesource.mqtt.client.Promise;
specialinvoke v.<org.fusesource.mqtt.client.Promise: void <init>()>();
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
v = virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
v = new org.fusesource.mqtt.client.FutureConnection$2;
specialinvoke v.<org.fusesource.mqtt.client.FutureConnection$2: void <init>(org.fusesource.mqtt.client.FutureConnection,org.fusesource.mqtt.client.Promise)>(v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return v;
}
public org.fusesource.mqtt.client.Future disconnect()
{
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.Promise v;
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.mqtt.client.CallbackConnection v;
org.fusesource.mqtt.client.FutureConnection$3 v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = new org.fusesource.mqtt.client.Promise;
specialinvoke v.<org.fusesource.mqtt.client.Promise: void <init>()>();
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
v = virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
v = new org.fusesource.mqtt.client.FutureConnection$3;
specialinvoke v.<org.fusesource.mqtt.client.FutureConnection$3: void <init>(org.fusesource.mqtt.client.FutureConnection,org.fusesource.mqtt.client.Promise)>(v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return v;
}
public org.fusesource.mqtt.client.Future kill()
{
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.Promise v;
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.mqtt.client.FutureConnection$4 v;
org.fusesource.mqtt.client.CallbackConnection v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = new org.fusesource.mqtt.client.Promise;
specialinvoke v.<org.fusesource.mqtt.client.Promise: void <init>()>();
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
v = virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
v = new org.fusesource.mqtt.client.FutureConnection$4;
specialinvoke v.<org.fusesource.mqtt.client.FutureConnection$4: void <init>(org.fusesource.mqtt.client.FutureConnection,org.fusesource.mqtt.client.Promise)>(v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return v;
}
public org.fusesource.mqtt.client.Future subscribe(org.fusesource.mqtt.client.Topic[])
{
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.Promise v;
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.mqtt.client.FutureConnection$5 v;
org.fusesource.mqtt.client.Topic[] v;
org.fusesource.mqtt.client.CallbackConnection v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: org.fusesource.mqtt.client.Topic[];
v = new org.fusesource.mqtt.client.Promise;
specialinvoke v.<org.fusesource.mqtt.client.Promise: void <init>()>();
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
v = virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
v = new org.fusesource.mqtt.client.FutureConnection$5;
specialinvoke v.<org.fusesource.mqtt.client.FutureConnection$5: void <init>(org.fusesource.mqtt.client.FutureConnection,org.fusesource.mqtt.client.Topic[],org.fusesource.mqtt.client.Promise)>(v, v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return v;
}
public org.fusesource.mqtt.client.Future unsubscribe(java.lang.String[])
{
org.fusesource.hawtbuf.UTF8Buffer[] v;
org.fusesource.mqtt.client.FutureConnection v;
java.lang.String[] v;
org.fusesource.mqtt.client.Future v;
org.fusesource.hawtbuf.UTF8Buffer v;
int v, v, v;
java.lang.String v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: java.lang.String[];
v = lengthof v;
v = newarray (org.fusesource.hawtbuf.UTF8Buffer)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = new org.fusesource.hawtbuf.UTF8Buffer;
v = v[v];
specialinvoke v.<org.fusesource.hawtbuf.UTF8Buffer: void <init>(java.lang.String)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
v = virtualinvoke v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.Future unsubscribe(org.fusesource.hawtbuf.UTF8Buffer[])>(v);
return v;
}
public org.fusesource.mqtt.client.Future unsubscribe(org.fusesource.hawtbuf.UTF8Buffer[])
{
org.fusesource.hawtbuf.UTF8Buffer[] v;
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.Promise v;
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.mqtt.client.FutureConnection$6 v;
org.fusesource.mqtt.client.CallbackConnection v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: org.fusesource.hawtbuf.UTF8Buffer[];
v = new org.fusesource.mqtt.client.Promise;
specialinvoke v.<org.fusesource.mqtt.client.Promise: void <init>()>();
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
v = virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
v = new org.fusesource.mqtt.client.FutureConnection$6;
specialinvoke v.<org.fusesource.mqtt.client.FutureConnection$6: void <init>(org.fusesource.mqtt.client.FutureConnection,org.fusesource.hawtbuf.UTF8Buffer[],org.fusesource.mqtt.client.Promise)>(v, v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return v;
}
public org.fusesource.mqtt.client.Future publish(java.lang.String, byte[], org.fusesource.mqtt.client.QoS, boolean)
{
byte[] v;
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.hawtbuf.Buffer v;
org.fusesource.mqtt.client.QoS v;
org.fusesource.mqtt.client.Future v;
org.fusesource.hawtbuf.UTF8Buffer v;
java.lang.String v;
boolean v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: java.lang.String;
v := @parameter: byte[];
v := @parameter: org.fusesource.mqtt.client.QoS;
v := @parameter: boolean;
v = staticinvoke <org.fusesource.hawtbuf.Buffer: org.fusesource.hawtbuf.UTF8Buffer utf8(java.lang.String)>(v);
v = new org.fusesource.hawtbuf.Buffer;
specialinvoke v.<org.fusesource.hawtbuf.Buffer: void <init>(byte[])>(v);
v = virtualinvoke v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.Future publish(org.fusesource.hawtbuf.UTF8Buffer,org.fusesource.hawtbuf.Buffer,org.fusesource.mqtt.client.QoS,boolean)>(v, v, v, v);
return v;
}
public org.fusesource.mqtt.client.Future publish(org.fusesource.hawtbuf.UTF8Buffer, org.fusesource.hawtbuf.Buffer, org.fusesource.mqtt.client.QoS, boolean)
{
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.mqtt.client.FutureConnection$7 v;
org.fusesource.hawtbuf.Buffer v;
org.fusesource.mqtt.client.QoS v;
org.fusesource.mqtt.client.CallbackConnection v;
org.fusesource.mqtt.client.Promise v;
org.fusesource.hawtbuf.UTF8Buffer v;
boolean v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: org.fusesource.hawtbuf.UTF8Buffer;
v := @parameter: org.fusesource.hawtbuf.Buffer;
v := @parameter: org.fusesource.mqtt.client.QoS;
v := @parameter: boolean;
v = new org.fusesource.mqtt.client.Promise;
specialinvoke v.<org.fusesource.mqtt.client.Promise: void <init>()>();
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
v = virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
v = new org.fusesource.mqtt.client.FutureConnection$7;
specialinvoke v.<org.fusesource.mqtt.client.FutureConnection$7: void <init>(org.fusesource.mqtt.client.FutureConnection,org.fusesource.hawtbuf.UTF8Buffer,org.fusesource.hawtbuf.Buffer,org.fusesource.mqtt.client.QoS,boolean,org.fusesource.mqtt.client.Promise)>(v, v, v, v, v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return v;
}
public org.fusesource.mqtt.client.Future receive()
{
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.Promise v;
org.fusesource.mqtt.client.FutureConnection$8 v;
org.fusesource.hawtdispatch.DispatchQueue v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = new org.fusesource.mqtt.client.Promise;
specialinvoke v.<org.fusesource.mqtt.client.Promise: void <init>()>();
v = virtualinvoke v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
v = new org.fusesource.mqtt.client.FutureConnection$8;
specialinvoke v.<org.fusesource.mqtt.client.FutureConnection$8: void <init>(org.fusesource.mqtt.client.FutureConnection,org.fusesource.mqtt.client.Promise)>(v, v);
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void execute(org.fusesource.hawtdispatch.Task)>(v);
return v;
}
public long getReceiveBuffer()
{
long v;
org.fusesource.hawtdispatch.DispatchQueue v;
org.fusesource.mqtt.client.FutureConnection v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = virtualinvoke v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void assertExecuting()>();
v = v.<org.fusesource.mqtt.client.FutureConnection: long receiveBuffer>;
return v;
}
public void setReceiveBuffer(long)
{
org.fusesource.mqtt.client.FutureConnection v;
long v, v, v, v, v, v, v;
org.fusesource.hawtdispatch.DispatchQueue v;
byte v, v;
boolean v, v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v := @parameter: long;
v = virtualinvoke v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.hawtdispatch.DispatchQueue getDispatchQueue()>();
interfaceinvoke v.<org.fusesource.hawtdispatch.DispatchQueue: void assertExecuting()>();
v = v.<org.fusesource.mqtt.client.FutureConnection: long receiveBuffer>;
v.<org.fusesource.mqtt.client.FutureConnection: long receiveBuffer> = v;
v = v - v;
v = v.<org.fusesource.mqtt.client.FutureConnection: long receiveBufferRemaining>;
v = v - v;
v.<org.fusesource.mqtt.client.FutureConnection: long receiveBufferRemaining> = v;
v = v.<org.fusesource.mqtt.client.FutureConnection: boolean receiveBufferFull>;
if v != 0 goto label;
v = v.<org.fusesource.mqtt.client.FutureConnection: long receiveBufferRemaining>;
v = v cmp 0L;
if v > 0 goto label;
v.<org.fusesource.mqtt.client.FutureConnection: boolean receiveBufferFull> = 1;
virtualinvoke v.<org.fusesource.mqtt.client.FutureConnection: void suspend()>();
goto label;
label:
v = v.<org.fusesource.mqtt.client.FutureConnection: boolean receiveBufferFull>;
if v == 0 goto label;
v = v.<org.fusesource.mqtt.client.FutureConnection: long receiveBufferRemaining>;
v = v cmp 0L;
if v <= 0 goto label;
v.<org.fusesource.mqtt.client.FutureConnection: boolean receiveBufferFull> = 0;
virtualinvoke v.<org.fusesource.mqtt.client.FutureConnection: void resume()>();
label:
return;
}
public void resume()
{
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.CallbackConnection v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: void resume()>();
return;
}
public void suspend()
{
org.fusesource.mqtt.client.FutureConnection v;
org.fusesource.mqtt.client.CallbackConnection v;
v := @this: org.fusesource.mqtt.client.FutureConnection;
v = v.<org.fusesource.mqtt.client.FutureConnection: org.fusesource.mqtt.client.CallbackConnection next>;
virtualinvoke v.<org.fusesource.mqtt.client.CallbackConnection: void suspend()>();
return;
}
}