public class io.netty.handler.traffic.TrafficCounter extends java.lang.Object
{
private static final io.netty.util.internal.logging.InternalLogger logger;
private final java.util.concurrent.atomic.AtomicLong currentWrittenBytes;
private final java.util.concurrent.atomic.AtomicLong currentReadBytes;
private long writingTime;
private long readingTime;
private final java.util.concurrent.atomic.AtomicLong cumulativeWrittenBytes;
private final java.util.concurrent.atomic.AtomicLong cumulativeReadBytes;
private long lastCumulativeTime;
private long lastWriteThroughput;
private long lastReadThroughput;
final java.util.concurrent.atomic.AtomicLong lastTime;
private volatile long lastWrittenBytes;
private volatile long lastReadBytes;
private volatile long lastWritingTime;
private volatile long lastReadingTime;
private final java.util.concurrent.atomic.AtomicLong realWrittenBytes;
private long realWriteThroughput;
final java.util.concurrent.atomic.AtomicLong checkInterval;
final java.lang.String name;
final io.netty.handler.traffic.AbstractTrafficShapingHandler trafficShapingHandler;
final java.util.concurrent.ScheduledExecutorService executor;
java.lang.Runnable monitor;
volatile java.util.concurrent.ScheduledFuture scheduledFuture;
volatile boolean monitorActive;
public static long milliSecondFromNano()
{
long v, v;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v / 1000000L;
return v;
}
public synchronized void start()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.ScheduledFuture v;
long v, v;
java.lang.Runnable v;
java.util.concurrent.TimeUnit v;
java.util.concurrent.atomic.AtomicLong v, v;
byte v;
io.netty.handler.traffic.TrafficCounter$TrafficMonitoringTask v;
java.util.concurrent.ScheduledExecutorService v, v;
boolean v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: boolean monitorActive>;
if v == 0 goto label;
return;
label:
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime>;
v = staticinvoke <io.netty.handler.traffic.TrafficCounter: long milliSecondFromNano()>();
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(v);
v = v.<io.netty.handler.traffic.TrafficCounter: 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 = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.ScheduledExecutorService executor>;
if v == null goto label;
v.<io.netty.handler.traffic.TrafficCounter: boolean monitorActive> = 1;
v = new io.netty.handler.traffic.TrafficCounter$TrafficMonitoringTask;
specialinvoke v.<io.netty.handler.traffic.TrafficCounter$TrafficMonitoringTask: void <init>(io.netty.handler.traffic.TrafficCounter)>(v);
v.<io.netty.handler.traffic.TrafficCounter: java.lang.Runnable monitor> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.ScheduledExecutorService executor>;
v = v.<io.netty.handler.traffic.TrafficCounter: 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.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.ScheduledFuture scheduledFuture> = v;
label:
return;
}
public synchronized void stop()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.ScheduledFuture v, v;
io.netty.handler.traffic.AbstractTrafficShapingHandler v, v;
long v;
boolean v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: boolean monitorActive>;
if v != 0 goto label;
return;
label:
v.<io.netty.handler.traffic.TrafficCounter: boolean monitorActive> = 0;
v = staticinvoke <io.netty.handler.traffic.TrafficCounter: long milliSecondFromNano()>();
virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: void resetAccounting(long)>(v);
v = v.<io.netty.handler.traffic.TrafficCounter: io.netty.handler.traffic.AbstractTrafficShapingHandler trafficShapingHandler>;
if v == null goto label;
v = v.<io.netty.handler.traffic.TrafficCounter: io.netty.handler.traffic.AbstractTrafficShapingHandler trafficShapingHandler>;
virtualinvoke v.<io.netty.handler.traffic.AbstractTrafficShapingHandler: void doAccounting(io.netty.handler.traffic.TrafficCounter)>(v);
label:
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.ScheduledFuture scheduledFuture>;
if v == null goto label;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.ScheduledFuture scheduledFuture>;
interfaceinvoke v.<java.util.concurrent.ScheduledFuture: boolean cancel(boolean)>(1);
label:
return;
}
synchronized void resetAccounting(long)
{
io.netty.handler.traffic.TrafficCounter v;
byte v, v;
boolean v;
io.netty.util.internal.logging.InternalLogger v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
java.util.concurrent.atomic.AtomicLong v, v, v, v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndSet(long)>(v);
v = v - v;
v = v cmp 0L;
if v != 0 goto label;
return;
label:
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: long checkInterval()>();
v = v << 1;
v = v cmp v;
if v <= 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: long checkInterval()>();
v = v.<io.netty.handler.traffic.TrafficCounter: java.lang.String name>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long,java.lang.String)>(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[])>("Acct schedule not ok: \u > 2*\u from \u0001");
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>(v);
label:
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentReadBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndSet(long)>(0L);
v.<io.netty.handler.traffic.TrafficCounter: long lastReadBytes> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentWrittenBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndSet(long)>(0L);
v.<io.netty.handler.traffic.TrafficCounter: long lastWrittenBytes> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastReadBytes>;
v = v * 1000L;
v = v / v;
v.<io.netty.handler.traffic.TrafficCounter: long lastReadThroughput> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastWrittenBytes>;
v = v * 1000L;
v = v / v;
v.<io.netty.handler.traffic.TrafficCounter: long lastWriteThroughput> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong realWrittenBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndSet(long)>(0L);
v = v * 1000L;
v = v / v;
v.<io.netty.handler.traffic.TrafficCounter: long realWriteThroughput> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastWritingTime>;
v = v.<io.netty.handler.traffic.TrafficCounter: long writingTime>;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long lastWritingTime> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastReadingTime>;
v = v.<io.netty.handler.traffic.TrafficCounter: long readingTime>;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long lastReadingTime> = v;
return;
}
public void <init>(java.util.concurrent.ScheduledExecutorService, java.lang.String, long)
{
io.netty.handler.traffic.TrafficCounter v;
long v;
java.util.concurrent.atomic.AtomicLong v, v, v, v, v, v, v;
java.util.concurrent.ScheduledExecutorService v;
java.lang.Object v;
java.lang.String v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: java.util.concurrent.ScheduledExecutorService;
v := @parameter: java.lang.String;
v := @parameter: long;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentWrittenBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentReadBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeWrittenBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeReadBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong realWrittenBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(1000L);
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong checkInterval> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "name");
v.<io.netty.handler.traffic.TrafficCounter: java.lang.String name> = v;
v.<io.netty.handler.traffic.TrafficCounter: io.netty.handler.traffic.AbstractTrafficShapingHandler trafficShapingHandler> = null;
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.ScheduledExecutorService executor> = v;
specialinvoke v.<io.netty.handler.traffic.TrafficCounter: void init(long)>(v);
return;
}
public void <init>(io.netty.handler.traffic.AbstractTrafficShapingHandler, java.util.concurrent.ScheduledExecutorService, java.lang.String, long)
{
io.netty.handler.traffic.TrafficCounter v;
io.netty.handler.traffic.AbstractTrafficShapingHandler v;
long v;
java.util.concurrent.atomic.AtomicLong v, v, v, v, v, v, v;
java.util.concurrent.ScheduledExecutorService v;
java.lang.Object v, v;
java.lang.String v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: io.netty.handler.traffic.AbstractTrafficShapingHandler;
v := @parameter: java.util.concurrent.ScheduledExecutorService;
v := @parameter: java.lang.String;
v := @parameter: long;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentWrittenBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentReadBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeWrittenBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeReadBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong realWrittenBytes> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(1000L);
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong checkInterval> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "name");
v.<io.netty.handler.traffic.TrafficCounter: java.lang.String name> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNullWithIAE(java.lang.Object,java.lang.String)>(v, "trafficShapingHandler");
v.<io.netty.handler.traffic.TrafficCounter: io.netty.handler.traffic.AbstractTrafficShapingHandler trafficShapingHandler> = v;
v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.ScheduledExecutorService executor> = v;
specialinvoke v.<io.netty.handler.traffic.TrafficCounter: void init(long)>(v);
return;
}
private void init(long)
{
io.netty.handler.traffic.TrafficCounter v;
long v, v, v, v, v, v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<io.netty.handler.traffic.TrafficCounter: long lastCumulativeTime> = v;
v = staticinvoke <io.netty.handler.traffic.TrafficCounter: long milliSecondFromNano()>();
v.<io.netty.handler.traffic.TrafficCounter: long writingTime> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: long writingTime>;
v.<io.netty.handler.traffic.TrafficCounter: long readingTime> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: long writingTime>;
v.<io.netty.handler.traffic.TrafficCounter: long lastWritingTime> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: long writingTime>;
v.<io.netty.handler.traffic.TrafficCounter: long lastReadingTime> = v;
virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: void configure(long)>(v);
return;
}
public void configure(long)
{
io.netty.handler.traffic.TrafficCounter v;
long v, v, v, v, v;
java.util.concurrent.atomic.AtomicLong v, v;
byte v, v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v = v / 10L;
v = v * 10L;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong checkInterval>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndSet(long)>(v);
v = v cmp v;
if v == 0 goto label;
v = v cmp 0L;
if v > 0 goto label;
virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: void stop()>();
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime>;
v = staticinvoke <io.netty.handler.traffic.TrafficCounter: long milliSecondFromNano()>();
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(v);
goto label;
label:
virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: void stop()>();
virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: void start()>();
label:
return;
}
void bytesRecvFlowControl(long)
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v, v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentReadBytes>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeReadBytes>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
return;
}
void bytesWriteFlowControl(long)
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v, v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentWrittenBytes>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeWrittenBytes>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
return;
}
void bytesRealWriteFlowControl(long)
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong realWrittenBytes>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
return;
}
public long checkInterval()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong checkInterval>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
return v;
}
public long lastReadThroughput()
{
io.netty.handler.traffic.TrafficCounter v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastReadThroughput>;
return v;
}
public long lastWriteThroughput()
{
io.netty.handler.traffic.TrafficCounter v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastWriteThroughput>;
return v;
}
public long lastReadBytes()
{
io.netty.handler.traffic.TrafficCounter v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastReadBytes>;
return v;
}
public long lastWrittenBytes()
{
io.netty.handler.traffic.TrafficCounter v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastWrittenBytes>;
return v;
}
public long currentReadBytes()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentReadBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
return v;
}
public long currentWrittenBytes()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentWrittenBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
return v;
}
public long lastTime()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
return v;
}
public long cumulativeWrittenBytes()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeWrittenBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
return v;
}
public long cumulativeReadBytes()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeReadBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
return v;
}
public long lastCumulativeTime()
{
io.netty.handler.traffic.TrafficCounter v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastCumulativeTime>;
return v;
}
public java.util.concurrent.atomic.AtomicLong getRealWrittenBytes()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong realWrittenBytes>;
return v;
}
public long getRealWriteThroughput()
{
io.netty.handler.traffic.TrafficCounter v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: long realWriteThroughput>;
return v;
}
public void resetCumulativeTime()
{
io.netty.handler.traffic.TrafficCounter v;
java.util.concurrent.atomic.AtomicLong v, v;
long v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<io.netty.handler.traffic.TrafficCounter: long lastCumulativeTime> = v;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeReadBytes>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong cumulativeWrittenBytes>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
return;
}
public java.lang.String name()
{
io.netty.handler.traffic.TrafficCounter v;
java.lang.String v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v = v.<io.netty.handler.traffic.TrafficCounter: java.lang.String name>;
return v;
}
public long readTimeToWait(long, long, long)
{
io.netty.handler.traffic.TrafficCounter v;
long v, v, v, v, v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
v = staticinvoke <io.netty.handler.traffic.TrafficCounter: long milliSecondFromNano()>();
v = virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: long readTimeToWait(long,long,long,long)>(v, v, v, v);
return v;
}
public long readTimeToWait(long, long, long, long)
{
io.netty.handler.traffic.TrafficCounter v;
byte v, v, v, v, v, v, v, v, v;
boolean v, v;
io.netty.util.internal.logging.InternalLogger v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
java.util.concurrent.atomic.AtomicLong v, v, v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: void bytesRecvFlowControl(long)>(v);
v = v cmp 0L;
if v == 0 goto label;
v = v cmp 0L;
if v != 0 goto label;
label:
return 0L;
label:
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentReadBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v.<io.netty.handler.traffic.TrafficCounter: long readingTime>;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastReadBytes>;
v = v - v;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastReadingTime>;
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 0L);
v = v cmp 10L;
if v <= 0 goto label;
v = v * 1000L;
v = v / v;
v = v - v;
v = v + v;
v = v cmp 10L;
if v <= 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long,long,long)>(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[])>("Time: \u0001:\u0001:\u0001:\u0001");
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>(v);
label:
v = v cmp v;
if v <= 0 goto label;
v = v + v;
v = v - v;
v = v cmp v;
if v <= 0 goto label;
v = v;
label:
v = v + v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long readingTime> = v;
return v;
label:
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long readingTime> = v;
return 0L;
label:
v = v + v;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong checkInterval>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v + v;
v = v * 1000L;
v = v / v;
v = v - v;
v = v + v;
v = v cmp 10L;
if v <= 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long,long,long)>(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[])>("Time: \u0001:\u0001:\u0001:\u0001");
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>(v);
label:
v = v cmp v;
if v <= 0 goto label;
v = v + v;
v = v - v;
v = v cmp v;
if v <= 0 goto label;
v = v;
label:
v = v + v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long readingTime> = v;
return v;
label:
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long readingTime> = v;
return 0L;
}
public long writeTimeToWait(long, long, long)
{
io.netty.handler.traffic.TrafficCounter v;
long v, v, v, v, v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
v = staticinvoke <io.netty.handler.traffic.TrafficCounter: long milliSecondFromNano()>();
v = virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: long writeTimeToWait(long,long,long,long)>(v, v, v, v);
return v;
}
public long writeTimeToWait(long, long, long, long)
{
io.netty.handler.traffic.TrafficCounter v;
byte v, v, v, v, v, v, v, v, v;
boolean v, v;
io.netty.util.internal.logging.InternalLogger v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
java.util.concurrent.atomic.AtomicLong v, v, v;
v := @this: io.netty.handler.traffic.TrafficCounter;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
virtualinvoke v.<io.netty.handler.traffic.TrafficCounter: void bytesWriteFlowControl(long)>(v);
v = v cmp 0L;
if v == 0 goto label;
v = v cmp 0L;
if v != 0 goto label;
label:
return 0L;
label:
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong lastTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentWrittenBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v.<io.netty.handler.traffic.TrafficCounter: long lastWrittenBytes>;
v = v.<io.netty.handler.traffic.TrafficCounter: long writingTime>;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastWritingTime>;
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 0L);
v = v - v;
v = v cmp 10L;
if v <= 0 goto label;
v = v * 1000L;
v = v / v;
v = v - v;
v = v + v;
v = v cmp 10L;
if v <= 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long,long,long)>(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[])>("Time: \u0001:\u0001:\u0001:\u0001");
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>(v);
label:
v = v cmp v;
if v <= 0 goto label;
v = v + v;
v = v - v;
v = v cmp v;
if v <= 0 goto label;
v = v;
label:
v = v + v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long writingTime> = v;
return v;
label:
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long writingTime> = v;
return 0L;
label:
v = v + v;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong checkInterval>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v + v;
v = v * 1000L;
v = v / v;
v = v - v;
v = v + v;
v = v cmp 10L;
if v <= 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long,long,long)>(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[])>("Time: \u0001:\u0001:\u0001:\u0001");
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>(v);
label:
v = v cmp v;
if v <= 0 goto label;
v = v + v;
v = v - v;
v = v cmp v;
if v <= 0 goto label;
v = v;
label:
v = v + v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long writingTime> = v;
return v;
label:
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<io.netty.handler.traffic.TrafficCounter: long writingTime> = v;
return 0L;
}
public java.lang.String toString()
{
io.netty.handler.traffic.TrafficCounter v;
long v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
java.util.concurrent.atomic.AtomicLong v, v, v;
java.lang.StringBuilder v;
v := @this: io.netty.handler.traffic.TrafficCounter;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(165);
v = v.<io.netty.handler.traffic.TrafficCounter: java.lang.String name>;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastReadThroughput>;
v = v >> 10;
v = v.<io.netty.handler.traffic.TrafficCounter: long lastWriteThroughput>;
v = v >> 10;
v = v.<io.netty.handler.traffic.TrafficCounter: long realWriteThroughput>;
v = v >> 10;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentReadBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v >> 10;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong currentWrittenBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v >> 10;
v = v.<io.netty.handler.traffic.TrafficCounter: java.util.concurrent.atomic.AtomicLong realWrittenBytes>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v >> 10;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,long,long,long,long,long,long)>(v, v, 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[])>("Monitor \u Current Speed Read: \u KB/s, Asked Write: \u KB/s, Real Write: \u KB/s, Current Read: \u KB, Current asked Write: \u KB, Current real Write: \u KB");
return v;
}
static void <clinit>()
{
io.netty.util.internal.logging.InternalLogger v;
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Lio/netty/handler/traffic/TrafficCounter;");
<io.netty.handler.traffic.TrafficCounter: io.netty.util.internal.logging.InternalLogger logger> = v;
return;
}
}