public class org.apache.activemq.transport.MutexTransport extends org.apache.activemq.transport.TransportFilter
{
private final java.util.concurrent.locks.ReentrantLock writeLock;
private boolean syncOnCommand;
public void <init>(org.apache.activemq.transport.Transport)
{
org.apache.activemq.transport.Transport v;
java.util.concurrent.locks.ReentrantLock v;
org.apache.activemq.transport.MutexTransport v;
v := @this: org.apache.activemq.transport.MutexTransport;
v := @parameter: org.apache.activemq.transport.Transport;
specialinvoke v.<org.apache.activemq.transport.TransportFilter: void <init>(org.apache.activemq.transport.Transport)>(v);
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock> = v;
v.<org.apache.activemq.transport.MutexTransport: boolean syncOnCommand> = 0;
return;
}
public void <init>(org.apache.activemq.transport.Transport, boolean)
{
java.util.concurrent.locks.ReentrantLock v;
org.apache.activemq.transport.Transport v;
org.apache.activemq.transport.MutexTransport v;
boolean v;
v := @this: org.apache.activemq.transport.MutexTransport;
v := @parameter: org.apache.activemq.transport.Transport;
v := @parameter: boolean;
specialinvoke v.<org.apache.activemq.transport.TransportFilter: void <init>(org.apache.activemq.transport.Transport)>(v);
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock> = v;
v.<org.apache.activemq.transport.MutexTransport: boolean syncOnCommand> = v;
return;
}
public void onCommand(java.lang.Object)
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.activemq.transport.TransportListener v, v;
org.apache.activemq.transport.MutexTransport v;
java.lang.Object v;
boolean v;
v := @this: org.apache.activemq.transport.MutexTransport;
v := @parameter: java.lang.Object;
v = v.<org.apache.activemq.transport.MutexTransport: boolean syncOnCommand>;
if v == 0 goto label;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.activemq.transport.MutexTransport: org.apache.activemq.transport.TransportListener transportListener>;
interfaceinvoke v.<org.apache.activemq.transport.TransportListener: void onCommand(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
v = v.<org.apache.activemq.transport.MutexTransport: org.apache.activemq.transport.TransportListener transportListener>;
interfaceinvoke v.<org.apache.activemq.transport.TransportListener: void onCommand(java.lang.Object)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
public org.apache.activemq.transport.FutureResponse asyncRequest(java.lang.Object, org.apache.activemq.transport.ResponseCallback) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.transport.ResponseCallback v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.activemq.transport.Transport v;
org.apache.activemq.transport.MutexTransport v;
org.apache.activemq.transport.FutureResponse v;
java.lang.Object v;
v := @this: org.apache.activemq.transport.MutexTransport;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.activemq.transport.ResponseCallback;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.activemq.transport.MutexTransport: org.apache.activemq.transport.Transport next>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: org.apache.activemq.transport.FutureResponse asyncRequest(java.lang.Object,org.apache.activemq.transport.ResponseCallback)>(v, null);
label:
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public void oneway(java.lang.Object) throws java.io.IOException
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
java.lang.Object v;
org.apache.activemq.transport.Transport v;
org.apache.activemq.transport.MutexTransport v;
v := @this: org.apache.activemq.transport.MutexTransport;
v := @parameter: java.lang.Object;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.activemq.transport.MutexTransport: org.apache.activemq.transport.Transport next>;
interfaceinvoke v.<org.apache.activemq.transport.Transport: void oneway(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public java.lang.Object request(java.lang.Object) throws java.io.IOException
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.activemq.transport.Transport v;
org.apache.activemq.transport.MutexTransport v;
java.lang.Object v, v;
v := @this: org.apache.activemq.transport.MutexTransport;
v := @parameter: java.lang.Object;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.activemq.transport.MutexTransport: org.apache.activemq.transport.Transport next>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.lang.Object request(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.lang.Object request(java.lang.Object, int) throws java.io.IOException
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.activemq.transport.Transport v;
org.apache.activemq.transport.MutexTransport v;
int v;
java.lang.Object v, v;
v := @this: org.apache.activemq.transport.MutexTransport;
v := @parameter: java.lang.Object;
v := @parameter: int;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.activemq.transport.MutexTransport: org.apache.activemq.transport.Transport next>;
v = interfaceinvoke v.<org.apache.activemq.transport.Transport: java.lang.Object request(java.lang.Object,int)>(v, v);
label:
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.activemq.transport.MutexTransport: java.util.concurrent.locks.ReentrantLock writeLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String toString()
{
org.apache.activemq.transport.Transport v;
java.lang.String v;
org.apache.activemq.transport.MutexTransport v;
v := @this: org.apache.activemq.transport.MutexTransport;
v = v.<org.apache.activemq.transport.MutexTransport: org.apache.activemq.transport.Transport next>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
return v;
}
public boolean isSyncOnCommand()
{
org.apache.activemq.transport.MutexTransport v;
boolean v;
v := @this: org.apache.activemq.transport.MutexTransport;
v = v.<org.apache.activemq.transport.MutexTransport: boolean syncOnCommand>;
return v;
}
public void setSyncOnCommand(boolean)
{
org.apache.activemq.transport.MutexTransport v;
boolean v;
v := @this: org.apache.activemq.transport.MutexTransport;
v := @parameter: boolean;
v.<org.apache.activemq.transport.MutexTransport: boolean syncOnCommand> = v;
return;
}
}