public class oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter extends oadd.io.netty.handler.traffic.TrafficCounter
{
public void <init>(oadd.io.netty.handler.traffic.GlobalChannelTrafficShapingHandler, java.util.concurrent.ScheduledExecutorService, java.lang.String, long)
{
java.util.concurrent.ScheduledExecutorService v;
oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter v;
long v;
java.lang.String v;
oadd.io.netty.handler.traffic.GlobalChannelTrafficShapingHandler v;
v := @this: oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter;
v := @parameter: oadd.io.netty.handler.traffic.GlobalChannelTrafficShapingHandler;
v := @parameter: java.util.concurrent.ScheduledExecutorService;
v := @parameter: java.lang.String;
v := @parameter: long;
specialinvoke v.<oadd.io.netty.handler.traffic.TrafficCounter: void <init>(oadd.io.netty.handler.traffic.AbstractTrafficShapingHandler,java.util.concurrent.ScheduledExecutorService,java.lang.String,long)>(v, v, v, v);
staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullWithIAE(java.lang.Object,java.lang.String)>(v, "executor");
return;
}
public synchronized void start()
{
oadd.io.netty.handler.traffic.AbstractTrafficShapingHandler v;
java.util.concurrent.ScheduledFuture v;
long v, v;
oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter$MixedTrafficMonitoringTask v;
java.lang.Runnable v;
java.util.concurrent.TimeUnit v;
java.util.concurrent.atomic.AtomicLong v, v;
byte v;
java.util.concurrent.ScheduledExecutorService v;
oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter v;
boolean v;
v := @this: oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter;
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: boolean monitorActive>;
if v == 0 goto label;
return;
label:
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime>;
v = staticinvoke <oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: long milliSecondFromNano()>();
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(v);
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: java.util.concurrent.atomic.AtomicLong checkInterval>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v cmp 0L;
if v <= 0 goto label;
v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: boolean monitorActive> = 1;
v = new oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter$MixedTrafficMonitoringTask;
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: oadd.io.netty.handler.traffic.AbstractTrafficShapingHandler trafficShapingHandler>;
specialinvoke v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter$MixedTrafficMonitoringTask: void <init>(oadd.io.netty.handler.traffic.GlobalChannelTrafficShapingHandler,oadd.io.netty.handler.traffic.TrafficCounter)>(v, v);
v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: java.lang.Runnable monitor> = v;
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: java.util.concurrent.ScheduledExecutorService executor>;
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: java.lang.Runnable monitor>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, 0L, v, v);
v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: java.util.concurrent.ScheduledFuture scheduledFuture> = v;
label:
return;
}
public synchronized void stop()
{
oadd.io.netty.handler.traffic.AbstractTrafficShapingHandler v;
java.util.concurrent.ScheduledFuture v, v;
oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter v;
long v;
boolean v;
v := @this: oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter;
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: boolean monitorActive>;
if v != 0 goto label;
return;
label:
v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: boolean monitorActive> = 0;
v = staticinvoke <oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: long milliSecondFromNano()>();
virtualinvoke v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: void resetAccounting(long)>(v);
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: oadd.io.netty.handler.traffic.AbstractTrafficShapingHandler trafficShapingHandler>;
virtualinvoke v.<oadd.io.netty.handler.traffic.AbstractTrafficShapingHandler: void doAccounting(oadd.io.netty.handler.traffic.TrafficCounter)>(v);
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: java.util.concurrent.ScheduledFuture scheduledFuture>;
if v == null goto label;
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: java.util.concurrent.ScheduledFuture scheduledFuture>;
interfaceinvoke v.<java.util.concurrent.ScheduledFuture: boolean cancel(boolean)>(1);
label:
return;
}
public void resetCumulativeTime()
{
oadd.io.netty.handler.traffic.AbstractTrafficShapingHandler v;
java.util.Iterator v;
java.util.Collection v;
java.util.concurrent.ConcurrentMap v;
oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter v;
java.lang.Object v;
oadd.io.netty.handler.traffic.TrafficCounter v;
boolean v;
v := @this: oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter;
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficCounter: oadd.io.netty.handler.traffic.AbstractTrafficShapingHandler trafficShapingHandler>;
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficShapingHandler: java.util.concurrent.ConcurrentMap channelQueues>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<oadd.io.netty.handler.traffic.GlobalChannelTrafficShapingHandler$PerChannel: oadd.io.netty.handler.traffic.TrafficCounter channelTrafficCounter>;
virtualinvoke v.<oadd.io.netty.handler.traffic.TrafficCounter: void resetCumulativeTime()>();
goto label;
label:
specialinvoke v.<oadd.io.netty.handler.traffic.TrafficCounter: void resetCumulativeTime()>();
return;
}
}