public class org.apache.activemq.broker.region.QueueBrowserSubscription extends org.apache.activemq.broker.region.QueueSubscription
{
protected static final org.slf4j.Logger LOG;
int queueRefs;
boolean browseDone;
boolean destinationsAdded;
private final java.util.concurrent.ConcurrentMap audit;
private long maxMessages;
public void <init>(org.apache.activemq.broker.Broker, org.apache.activemq.usage.SystemUsage, org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.ConsumerInfo) throws javax.jms.JMSException
{
org.apache.activemq.broker.Broker v;
org.apache.activemq.broker.ConnectionContext v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.activemq.usage.SystemUsage v;
org.apache.activemq.command.ConsumerInfo v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v := @parameter: org.apache.activemq.broker.Broker;
v := @parameter: org.apache.activemq.usage.SystemUsage;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
specialinvoke v.<org.apache.activemq.broker.region.QueueSubscription: void <init>(org.apache.activemq.broker.Broker,org.apache.activemq.usage.SystemUsage,org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.ConsumerInfo)>(v, v, v, v);
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.broker.region.QueueBrowserSubscription: java.util.concurrent.ConcurrentMap audit> = v;
return;
}
protected boolean canDispatch(org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.broker.region.MessageReference v;
boolean v, v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = interfaceinvoke v.<org.apache.activemq.broker.region.QueueMessageReference: boolean isAcked()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public synchronized java.lang.String toString()
{
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
java.util.List v;
java.util.concurrent.atomic.AtomicInteger v;
int v, v, v;
java.lang.String v;
org.apache.activemq.command.ConsumerInfo v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: java.util.concurrent.CopyOnWriteArrayList destinations>;
v = virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: int size()>();
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: java.util.List dispatched>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: java.util.concurrent.atomic.AtomicInteger prefetchExtension>;
v = virtualinvoke v.<org.apache.activemq.broker.region.QueueBrowserSubscription: int getPendingQueueSize()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ConsumerId,int,int,java.util.concurrent.atomic.AtomicInteger,int)>(v, v, v, 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[])>("QueueBrowserSubscription: consumer=\u, destinations=\u, dispatched=\u, delivered=\u, pending=\u0001");
return v;
}
public synchronized void destinationsAdded() throws java.lang.Exception
{
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v.<org.apache.activemq.broker.region.QueueBrowserSubscription: boolean destinationsAdded> = 1;
specialinvoke v.<org.apache.activemq.broker.region.QueueBrowserSubscription: void checkDone()>();
return;
}
public boolean isDuplicate(org.apache.activemq.command.MessageId)
{
org.apache.activemq.command.MessageId v;
java.lang.Boolean v;
java.lang.Object v;
boolean v;
java.util.concurrent.ConcurrentMap v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v := @parameter: org.apache.activemq.command.MessageId;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: java.util.concurrent.ConcurrentMap audit>;
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void checkDone() throws java.lang.Exception
{
int v;
org.apache.activemq.broker.region.QueueMessageReference v;
boolean v, v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: boolean browseDone>;
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: int queueRefs>;
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: boolean destinationsAdded>;
if v == 0 goto label;
v.<org.apache.activemq.broker.region.QueueBrowserSubscription: boolean browseDone> = 1;
v = <org.apache.activemq.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
virtualinvoke v.<org.apache.activemq.broker.region.QueueBrowserSubscription: void add(org.apache.activemq.broker.region.MessageReference)>(v);
label:
return;
}
public boolean matches(org.apache.activemq.broker.region.MessageReference, org.apache.activemq.filter.MessageEvaluationContext) throws java.io.IOException
{
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.filter.MessageEvaluationContext v;
boolean v, v, v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v := @parameter: org.apache.activemq.filter.MessageEvaluationContext;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: boolean browseDone>;
if v != 0 goto label;
v = specialinvoke v.<org.apache.activemq.broker.region.QueueSubscription: boolean matches(org.apache.activemq.broker.region.MessageReference,org.apache.activemq.filter.MessageEvaluationContext)>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected void acknowledge(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.command.MessageAck, org.apache.activemq.broker.region.MessageReference) throws java.io.IOException
{
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.command.ConsumerInfo v;
boolean v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.command.MessageAck;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: org.apache.activemq.command.ConsumerInfo info>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: boolean isNetworkSubscription()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.broker.region.QueueSubscription: void acknowledge(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.command.MessageAck,org.apache.activemq.broker.region.MessageReference)>(v, v, v);
label:
return;
}
public synchronized void incrementQueueRef()
{
int v, v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: int queueRefs>;
v = v + 1;
v.<org.apache.activemq.broker.region.QueueBrowserSubscription: int queueRefs> = v;
return;
}
public synchronized void decrementQueueRef() throws java.lang.Exception
{
int v, v, v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: int queueRefs>;
if v <= 0 goto label;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: int queueRefs>;
v = v - 1;
v.<org.apache.activemq.broker.region.QueueBrowserSubscription: int queueRefs> = v;
label:
specialinvoke v.<org.apache.activemq.broker.region.QueueBrowserSubscription: void checkDone()>();
return;
}
public java.util.List remove(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.Destination) throws java.lang.Exception
{
org.apache.activemq.broker.ConnectionContext v;
java.util.ArrayList v;
org.apache.activemq.broker.region.Destination v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.Destination;
specialinvoke v.<org.apache.activemq.broker.region.QueueSubscription: java.util.List remove(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Destination)>(v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
return v;
}
public boolean atMax()
{
byte v, v;
long v, v, v;
boolean v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: long maxMessages>;
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.QueueBrowserSubscription: long getEnqueueCounter()>();
v = v.<org.apache.activemq.broker.region.QueueBrowserSubscription: long maxMessages>;
v = v cmp v;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void setMaxMessages(long)
{
long v;
org.apache.activemq.broker.region.QueueBrowserSubscription v;
v := @this: org.apache.activemq.broker.region.QueueBrowserSubscription;
v := @parameter: long;
v.<org.apache.activemq.broker.region.QueueBrowserSubscription: long maxMessages> = v;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/broker/region/QueueBrowserSubscription;");
<org.apache.activemq.broker.region.QueueBrowserSubscription: org.slf4j.Logger LOG> = v;
return;
}
}