public class org.apache.camel.processor.SamplingThrottler extends org.apache.camel.processor.DelegateAsyncProcessor implements org.apache.camel.Traceable, org.apache.camel.spi.IdAware
{
private static final org.slf4j.Logger LOG;
private java.lang.String id;
private long messageFrequency;
private long currentMessageCount;
private long samplePeriod;
private long periodInMillis;
private java.util.concurrent.TimeUnit units;
private long timeOfLastExchange;
private org.apache.camel.processor.StopProcessor stopper;
private final java.lang.Object calculationLock;
private org.apache.camel.processor.SamplingThrottler$SampleStats sampled;
public void <init>(org.apache.camel.Processor, long)
{
org.apache.camel.processor.StopProcessor v;
long v;
org.apache.camel.processor.SamplingThrottler v;
java.lang.IllegalArgumentException v;
org.apache.camel.Processor v;
org.apache.camel.processor.SamplingThrottler$SampleStats v;
byte v;
java.lang.Object v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v := @parameter: org.apache.camel.Processor;
v := @parameter: long;
specialinvoke v.<org.apache.camel.processor.DelegateAsyncProcessor: void <init>(org.apache.camel.Processor)>(v);
v = new org.apache.camel.processor.StopProcessor;
specialinvoke v.<org.apache.camel.processor.StopProcessor: void <init>()>();
v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.processor.StopProcessor stopper> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.camel.processor.SamplingThrottler: java.lang.Object calculationLock> = v;
v = new org.apache.camel.processor.SamplingThrottler$SampleStats;
specialinvoke v.<org.apache.camel.processor.SamplingThrottler$SampleStats: void <init>()>();
v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.processor.SamplingThrottler$SampleStats sampled> = v;
v = v cmp 0L;
if v > 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("A positive value is required for the sampling message frequency");
throw v;
label:
v.<org.apache.camel.processor.SamplingThrottler: long messageFrequency> = v;
return;
}
public void <init>(org.apache.camel.Processor, long, java.util.concurrent.TimeUnit)
{
org.apache.camel.processor.StopProcessor v;
long v, v;
org.apache.camel.processor.SamplingThrottler v;
java.lang.IllegalArgumentException v, v;
java.util.concurrent.TimeUnit v;
org.apache.camel.Processor v;
org.apache.camel.processor.SamplingThrottler$SampleStats v;
byte v;
java.lang.Object v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v := @parameter: org.apache.camel.Processor;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
specialinvoke v.<org.apache.camel.processor.DelegateAsyncProcessor: void <init>(org.apache.camel.Processor)>(v);
v = new org.apache.camel.processor.StopProcessor;
specialinvoke v.<org.apache.camel.processor.StopProcessor: void <init>()>();
v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.processor.StopProcessor stopper> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.camel.processor.SamplingThrottler: java.lang.Object calculationLock> = v;
v = new org.apache.camel.processor.SamplingThrottler$SampleStats;
specialinvoke v.<org.apache.camel.processor.SamplingThrottler$SampleStats: void <init>()>();
v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.processor.SamplingThrottler$SampleStats sampled> = v;
v = v cmp 0L;
if v > 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("A positive value is required for the sampling period");
throw v;
label:
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("A invalid null value was supplied for the units of the sampling period");
throw v;
label:
v.<org.apache.camel.processor.SamplingThrottler: long samplePeriod> = v;
v.<org.apache.camel.processor.SamplingThrottler: java.util.concurrent.TimeUnit units> = v;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
v.<org.apache.camel.processor.SamplingThrottler: long periodInMillis> = v;
return;
}
public java.lang.String toString()
{
long v, v, v;
org.apache.camel.processor.SamplingThrottler v;
java.util.concurrent.TimeUnit v;
byte v;
java.util.Locale v;
org.apache.camel.AsyncProcessor v, v;
java.lang.String v, v, v, v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v = v.<org.apache.camel.processor.SamplingThrottler: long messageFrequency>;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.camel.processor.SamplingThrottler: long messageFrequency>;
v = virtualinvoke v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.AsyncProcessor getProcessor()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,org.apache.camel.AsyncProcessor)>(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[])>("SamplingThrottler[1 exchange per: \u messages received -> \u]");
return v;
label:
v = v.<org.apache.camel.processor.SamplingThrottler: long samplePeriod>;
v = v.<org.apache.camel.processor.SamplingThrottler: java.util.concurrent.TimeUnit units>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: java.lang.String toString()>();
v = <java.util.Locale: java.util.Locale ENGLISH>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = virtualinvoke v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.AsyncProcessor getProcessor()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.String,org.apache.camel.AsyncProcessor)>(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[])>("SamplingThrottler[1 exchange per: \u \u -> \u]");
return v;
}
public java.lang.String getId()
{
java.lang.String v;
org.apache.camel.processor.SamplingThrottler v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v = v.<org.apache.camel.processor.SamplingThrottler: java.lang.String id>;
return v;
}
public void setId(java.lang.String)
{
java.lang.String v;
org.apache.camel.processor.SamplingThrottler v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v := @parameter: java.lang.String;
v.<org.apache.camel.processor.SamplingThrottler: java.lang.String id> = v;
return;
}
public java.lang.String getTraceLabel()
{
long v, v, v;
org.apache.camel.processor.SamplingThrottler v;
java.util.concurrent.TimeUnit v;
byte v;
java.util.Locale v;
java.lang.String v, v, v, v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v = v.<org.apache.camel.processor.SamplingThrottler: long messageFrequency>;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.camel.processor.SamplingThrottler: long messageFrequency>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(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[])>("samplingThrottler[1 exchange per: \u messages received]");
return v;
label:
v = v.<org.apache.camel.processor.SamplingThrottler: long samplePeriod>;
v = v.<org.apache.camel.processor.SamplingThrottler: java.util.concurrent.TimeUnit units>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: java.lang.String toString()>();
v = <java.util.Locale: java.util.Locale ENGLISH>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.String)>(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[])>("samplingThrottler[1 exchange per: \u \u]");
return v;
}
public long getMessageFrequency()
{
long v;
org.apache.camel.processor.SamplingThrottler v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v = v.<org.apache.camel.processor.SamplingThrottler: long messageFrequency>;
return v;
}
public long getSamplePeriod()
{
long v;
org.apache.camel.processor.SamplingThrottler v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v = v.<org.apache.camel.processor.SamplingThrottler: long samplePeriod>;
return v;
}
public java.util.concurrent.TimeUnit getUnits()
{
java.util.concurrent.TimeUnit v;
org.apache.camel.processor.SamplingThrottler v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v = v.<org.apache.camel.processor.SamplingThrottler: java.util.concurrent.TimeUnit units>;
return v;
}
public boolean process(org.apache.camel.Exchange, org.apache.camel.AsyncCallback)
{
org.apache.camel.processor.SamplingThrottler v;
byte v, v, v;
boolean v, v, v, v;
org.apache.camel.processor.StopProcessor v;
java.lang.Exception v;
org.apache.camel.processor.SamplingThrottler$SampleStats v, v;
org.apache.camel.AsyncProcessor v;
java.lang.Throwable v;
long v, v, v, v, v, v, v, v, v, v;
org.apache.camel.Exchange v;
java.lang.String v, v;
org.slf4j.Logger v, v, v, v;
org.apache.camel.AsyncCallback v;
java.lang.Object v;
v := @this: org.apache.camel.processor.SamplingThrottler;
v := @parameter: org.apache.camel.Exchange;
v := @parameter: org.apache.camel.AsyncCallback;
v = 0;
v = v.<org.apache.camel.processor.SamplingThrottler: java.lang.Object calculationLock>;
entermonitor v;
label:
v = v.<org.apache.camel.processor.SamplingThrottler: long messageFrequency>;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.camel.processor.SamplingThrottler: long currentMessageCount>;
v = v + 1L;
v.<org.apache.camel.processor.SamplingThrottler: long currentMessageCount> = v;
v = v.<org.apache.camel.processor.SamplingThrottler: long currentMessageCount>;
v = v.<org.apache.camel.processor.SamplingThrottler: long messageFrequency>;
v = v % v;
v = v cmp 0L;
if v != 0 goto label;
v = 1;
goto label;
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.camel.processor.SamplingThrottler: long timeOfLastExchange>;
v = v.<org.apache.camel.processor.SamplingThrottler: long periodInMillis>;
v = v + v;
v = v cmp v;
if v < 0 goto label;
v = 1;
v = <org.apache.camel.processor.SamplingThrottler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.camel.processor.SamplingThrottler: org.slf4j.Logger LOG>;
v = v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.processor.SamplingThrottler$SampleStats sampled>;
v = virtualinvoke v.<org.apache.camel.processor.SamplingThrottler$SampleStats: java.lang.String sample()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v.<org.apache.camel.processor.SamplingThrottler: long timeOfLastExchange> = v;
goto label;
label:
v = <org.apache.camel.processor.SamplingThrottler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.camel.processor.SamplingThrottler: org.slf4j.Logger LOG>;
v = v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.processor.SamplingThrottler$SampleStats sampled>;
v = virtualinvoke v.<org.apache.camel.processor.SamplingThrottler$SampleStats: java.lang.String drop()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
v = v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.AsyncProcessor processor>;
v = interfaceinvoke v.<org.apache.camel.AsyncProcessor: boolean process(org.apache.camel.Exchange,org.apache.camel.AsyncCallback)>(v, v);
return v;
label:
v = v.<org.apache.camel.processor.SamplingThrottler: org.apache.camel.processor.StopProcessor stopper>;
virtualinvoke v.<org.apache.camel.processor.StopProcessor: void process(org.apache.camel.Exchange)>(v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.apache.camel.Exchange: void setException(java.lang.Throwable)>(v);
label:
interfaceinvoke v.<org.apache.camel.AsyncCallback: void done(boolean)>(1);
return 1;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/camel/processor/SamplingThrottler;");
<org.apache.camel.processor.SamplingThrottler: org.slf4j.Logger LOG> = v;
return;
}
}