public class org.apache.activemq.broker.region.group.MessageGroupHashBucket extends java.lang.Object implements org.apache.activemq.broker.region.group.MessageGroupMap
{
private final int bucketCount;
private final org.apache.activemq.command.ConsumerId[] consumers;
private final org.apache.activemq.memory.LRUMap cache;
public void <init>(int, int)
{
org.apache.activemq.memory.LRUMap v;
int v, v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
org.apache.activemq.command.ConsumerId[] v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: int bucketCount> = v;
v = newarray (org.apache.activemq.command.ConsumerId)[v];
v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers> = v;
v = new org.apache.activemq.memory.LRUMap;
specialinvoke v.<org.apache.activemq.memory.LRUMap: void <init>(int)>(v);
v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.memory.LRUMap cache> = v;
return;
}
public synchronized void put(java.lang.String, org.apache.activemq.command.ConsumerId)
{
org.apache.activemq.memory.LRUMap v;
int v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
java.lang.String v, v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ConsumerId[] v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.command.ConsumerId;
v = virtualinvoke v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: int getBucketNumber(java.lang.String)>(v);
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v[v] = v;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.memory.LRUMap cache>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerId: java.lang.String toString()>();
virtualinvoke v.<org.apache.activemq.memory.LRUMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return;
}
public synchronized org.apache.activemq.command.ConsumerId get(java.lang.String)
{
org.apache.activemq.memory.LRUMap v;
int v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
java.lang.String v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ConsumerId[] v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: int getBucketNumber(java.lang.String)>(v);
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.memory.LRUMap cache>;
virtualinvoke v.<org.apache.activemq.memory.LRUMap: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v = v[v];
return v;
}
public synchronized org.apache.activemq.command.ConsumerId removeGroup(java.lang.String)
{
org.apache.activemq.memory.LRUMap v;
int v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
java.lang.String v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ConsumerId[] v, v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: int getBucketNumber(java.lang.String)>(v);
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v = v[v];
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v[v] = null;
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.memory.LRUMap cache>;
virtualinvoke v.<org.apache.activemq.memory.LRUMap: java.lang.Object remove(java.lang.Object)>(v);
return v;
}
public synchronized org.apache.activemq.broker.region.group.MessageGroupSet removeConsumer(org.apache.activemq.command.ConsumerId)
{
org.apache.activemq.broker.region.group.MessageGroupSet v;
org.apache.activemq.command.ConsumerId v, v;
int v, v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
org.apache.activemq.command.ConsumerId[] v, v, v;
boolean v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: org.apache.activemq.command.ConsumerId;
v = null;
v = 0;
label:
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v = v[v];
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.broker.region.group.MessageGroupSet createMessageGroupSet(int,org.apache.activemq.broker.region.group.MessageGroupSet)>(v, v);
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v[v] = null;
label:
v = v + 1;
goto label;
label:
if v != null goto label;
v = <org.apache.activemq.broker.region.group.EmptyMessageGroupSet: org.apache.activemq.broker.region.group.MessageGroupSet INSTANCE>;
label:
return v;
}
public synchronized void removeAll()
{
int v, v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
org.apache.activemq.command.ConsumerId[] v, v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v = 0;
label:
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v[v] = null;
v = v + 1;
goto label;
label:
return;
}
public java.util.Map getGroups()
{
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
org.apache.activemq.memory.LRUMap v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.memory.LRUMap cache>;
return v;
}
public java.lang.String getType()
{
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
return "bucket";
}
public void setDestination(org.apache.activemq.broker.region.Destination)
{
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: org.apache.activemq.broker.region.Destination;
return;
}
public int getBucketCount()
{
int v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: int bucketCount>;
return v;
}
public java.lang.String toString()
{
org.apache.activemq.command.ConsumerId v;
int v, v, v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
java.lang.String v;
org.apache.activemq.command.ConsumerId[] v, v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v = 0;
v = 0;
label:
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.command.ConsumerId[] consumers>;
v = v[v];
if v == null goto label;
v = v + 1;
label:
v = v + 1;
goto label;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("active message group buckets: \u0001");
return v;
}
protected org.apache.activemq.broker.region.group.MessageGroupSet createMessageGroupSet(int, org.apache.activemq.broker.region.group.MessageGroupSet)
{
int v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket$1 v;
org.apache.activemq.broker.region.group.MessageGroupSet v, v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: int;
v := @parameter: org.apache.activemq.broker.region.group.MessageGroupSet;
v = virtualinvoke v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: org.apache.activemq.broker.region.group.MessageGroupSet createMessageGroupSet(int)>(v);
if v != null goto label;
return v;
label:
v = new org.apache.activemq.broker.region.group.MessageGroupHashBucket$1;
specialinvoke v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket$1: void <init>(org.apache.activemq.broker.region.group.MessageGroupHashBucket,org.apache.activemq.broker.region.group.MessageGroupSet,org.apache.activemq.broker.region.group.MessageGroupSet)>(v, v, v);
return v;
}
protected org.apache.activemq.broker.region.group.MessageGroupSet createMessageGroupSet(int)
{
int v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket$2 v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: int;
v = new org.apache.activemq.broker.region.group.MessageGroupHashBucket$2;
specialinvoke v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket$2: void <init>(org.apache.activemq.broker.region.group.MessageGroupHashBucket,int)>(v, v);
return v;
}
protected int getBucketNumber(java.lang.String)
{
int v, v, v, v;
org.apache.activemq.broker.region.group.MessageGroupHashBucket v;
java.lang.String v;
v := @this: org.apache.activemq.broker.region.group.MessageGroupHashBucket;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
v = v.<org.apache.activemq.broker.region.group.MessageGroupHashBucket: int bucketCount>;
v = v % v;
if v >= 0 goto label;
v = (int) -1;
v = v * v;
label:
return v;
}
}