class org.apache.activemq.broker.region.cursors.QueueStorePrefetch extends org.apache.activemq.broker.region.cursors.AbstractStoreCursor
{
private static final org.slf4j.Logger LOG;
private final org.apache.activemq.store.MessageStore store;
private final org.apache.activemq.broker.region.Queue queue;
private final org.apache.activemq.broker.Broker broker;
public void <init>(org.apache.activemq.broker.region.Queue, org.apache.activemq.broker.Broker)
{
org.apache.activemq.store.MessageStore v;
org.apache.activemq.broker.Broker v;
org.apache.activemq.broker.region.Queue v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
v := @parameter: org.apache.activemq.broker.region.Queue;
v := @parameter: org.apache.activemq.broker.Broker;
specialinvoke v.<org.apache.activemq.broker.region.cursors.AbstractStoreCursor: void <init>(org.apache.activemq.broker.region.Destination)>(v);
v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.broker.region.Queue queue> = v;
v = virtualinvoke v.<org.apache.activemq.broker.region.Queue: org.apache.activemq.store.MessageStore getMessageStore()>();
v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store> = v;
v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.broker.Broker broker> = v;
return;
}
public boolean recoverMessageReference(org.apache.activemq.command.MessageId) throws java.lang.Exception
{
org.apache.activemq.store.MessageStore v;
org.slf4j.Logger v;
org.apache.activemq.command.MessageId v;
java.io.IOException v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
org.apache.activemq.command.Message v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
v := @parameter: org.apache.activemq.command.MessageId;
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store>;
v = interfaceinvoke v.<org.apache.activemq.store.MessageStore: org.apache.activemq.command.Message getMessage(org.apache.activemq.command.MessageId)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: boolean recoverMessage(org.apache.activemq.command.Message)>(v);
return v;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageId)>(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 retrieve message for id: \u0001");
v = <org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
}
protected synchronized int getStoreSize()
{
org.apache.activemq.store.MessageStore v;
org.slf4j.Logger v;
int v;
java.io.IOException v;
java.lang.RuntimeException v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
label:
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store>;
v = interfaceinvoke v.<org.apache.activemq.store.MessageStore: int getMessageCount()>();
label:
return v;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to get message count", v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.IOException from label to label with label;
}
protected synchronized long getStoreMessageSize()
{
org.apache.activemq.store.MessageStore v;
org.slf4j.Logger v;
java.io.IOException v;
long v;
java.lang.RuntimeException v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
label:
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store>;
v = interfaceinvoke v.<org.apache.activemq.store.MessageStore: long getMessageSize()>();
label:
return v;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to get message size", v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.IOException from label to label with label;
}
protected boolean canEnableCash()
{
org.apache.activemq.broker.region.Queue v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
boolean v, v, v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
v = specialinvoke v.<org.apache.activemq.broker.region.cursors.AbstractStoreCursor: boolean canEnableCash()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.broker.region.Queue queue>;
v = virtualinvoke v.<org.apache.activemq.broker.region.Queue: boolean singlePendingSend()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected synchronized boolean isStoreEmpty()
{
org.apache.activemq.store.MessageStore v;
org.slf4j.Logger v;
java.lang.RuntimeException v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
java.lang.Exception v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
label:
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store>;
v = interfaceinvoke v.<org.apache.activemq.store.MessageStore: boolean isEmpty()>();
label:
return v;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to get message count", v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.lang.Exception from label to label with label;
}
protected void resetBatch()
{
org.apache.activemq.store.MessageStore v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store>;
interfaceinvoke v.<org.apache.activemq.store.MessageStore: void resetBatching()>();
return;
}
protected void setBatch(org.apache.activemq.command.MessageId) throws java.lang.Exception
{
org.apache.activemq.store.MessageStore v;
java.lang.Object[] v;
org.slf4j.Logger v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
java.lang.Object v, v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
v := @parameter: org.apache.activemq.command.MessageId;
v = <org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.Object getFutureOrSequenceLong()>();
v[2] = v;
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.Object getEntryLocator()>();
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{}  setBatch {} seq: {}, loc: {}", v);
label:
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store>;
interfaceinvoke v.<org.apache.activemq.store.MessageStore: void setBatch(org.apache.activemq.command.MessageId)>(v);
v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: boolean batchResetNeeded> = 0;
return;
}
protected void doFillBatch() throws java.lang.Exception
{
org.apache.activemq.store.MessageStore v;
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
org.apache.activemq.broker.Broker v;
int v;
boolean v, v, v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: boolean hasSpace()>();
v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: boolean hadSpace> = v;
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.broker.Broker broker>;
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.broker.BrokerService getBrokerService()>();
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: boolean isPersistent()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: boolean hadSpace>;
if v == 0 goto label;
label:
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store>;
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: int maxBatchSize>;
interfaceinvoke v.<org.apache.activemq.store.MessageStore: void recoverNextMessages(int,org.apache.activemq.store.MessageRecoveryListener)>(v, v);
virtualinvoke v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: void dealWithDuplicates()>();
label:
return;
}
public java.lang.String toString()
{
org.apache.activemq.store.MessageStore v;
java.lang.String v, v;
org.apache.activemq.broker.region.cursors.QueueStorePrefetch v;
v := @this: org.apache.activemq.broker.region.cursors.QueueStorePrefetch;
v = specialinvoke v.<org.apache.activemq.broker.region.cursors.AbstractStoreCursor: java.lang.String toString()>();
v = v.<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.apache.activemq.store.MessageStore store>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.apache.activemq.store.MessageStore)>(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[])>("\u,store=\u0001");
return v;
}
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/cursors/QueueStorePrefetch;");
<org.apache.activemq.broker.region.cursors.QueueStorePrefetch: org.slf4j.Logger LOG> = v;
return;
}
}