public class io.vertx.core.net.impl.pool.SimpleConnectionPool extends java.lang.Object implements io.vertx.core.net.impl.pool.ConnectionPool
{
private static final io.vertx.core.Future POOL_CLOSED;
private static final java.util.function.BiFunction SAME_EVENT_LOOP_SELECTOR;
private static final java.util.function.BiFunction FIRST_AVAILABLE_SELECTOR;
private final io.vertx.core.net.impl.pool.PoolConnector connector;
private final int maxWaiters;
private final int maxCapacity;
private final int[] capacityFactors;
private final io.vertx.core.net.impl.pool.Executor sync;
private final io.vertx.core.net.impl.pool.SimpleConnectionPool$ListImpl list;
private boolean closed;
private java.util.function.BiFunction selector;
private java.util.function.Function contextProvider;
private java.util.function.BiFunction fallbackSelector;
private final io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot[] slots;
private int size;
private int capacity;
private final io.vertx.core.net.impl.pool.SimpleConnectionPool$Waiters waiters;
private int requests;
void <init>(io.vertx.core.net.impl.pool.PoolConnector, int[])
{
io.vertx.core.net.impl.pool.PoolConnector v;
int[] v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
int v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.net.impl.pool.PoolConnector;
v := @parameter: int[];
v = (int) -1;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void <init>(io.vertx.core.net.impl.pool.PoolConnector,int[],int)>(v, v, v);
return;
}
void <init>(io.vertx.core.net.impl.pool.PoolConnector, int[], int)
{
io.vertx.core.net.impl.pool.PoolConnector v;
java.util.function.BiFunction v, v;
java.util.function.Function v;
int[] v, v;
int v, v, v, v, v, v, v, v, v, v, v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$ListImpl v;
io.vertx.core.net.impl.pool.CombinerExecutor v;
java.lang.IllegalArgumentException v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot[] v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Waiters v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.net.impl.pool.PoolConnector;
v := @parameter: int[];
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$ListImpl;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$ListImpl: void <init>(io.vertx.core.net.impl.pool.SimpleConnectionPool)>(v);
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.net.impl.pool.SimpleConnectionPool$ListImpl list> = v;
v = lengthof v;
v = newarray (int)[v];
v = 1;
v = 0;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
if v >= 1 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
v = v * v;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v = v + 1;
goto label;
label:
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v / v;
v[v] = v;
v = v + 1;
goto label;
label:
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int[] capacityFactors> = v;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.net.impl.pool.PoolConnector connector> = v;
v = newarray (io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot)[v];
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot[] slots> = v;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int size> = 0;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int maxWaiters> = v;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int capacity> = 0;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int maxCapacity> = v;
v = new io.vertx.core.net.impl.pool.CombinerExecutor;
specialinvoke v.<io.vertx.core.net.impl.pool.CombinerExecutor: void <init>(java.lang.Object)>(v);
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.net.impl.pool.Executor sync> = v;
v = <io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.BiFunction SAME_EVENT_LOOP_SELECTOR>;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.BiFunction selector> = v;
v = <io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.BiFunction FIRST_AVAILABLE_SELECTOR>;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.BiFunction fallbackSelector> = v;
v = <io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.Function EVENT_LOOP_CONTEXT_PROVIDER>;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.Function contextProvider> = v;
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$Waiters;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Waiters: void <init>()>();
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.net.impl.pool.SimpleConnectionPool$Waiters waiters> = v;
return;
}
public io.vertx.core.net.impl.pool.ConnectionPool connectionSelector(java.util.function.BiFunction)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
java.util.function.BiFunction v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: java.util.function.BiFunction;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.BiFunction selector> = v;
return v;
}
public io.vertx.core.net.impl.pool.ConnectionPool contextProvider(java.util.function.Function)
{
java.util.function.Function v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: java.util.function.Function;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.Function contextProvider> = v;
return v;
}
private void execute(io.vertx.core.net.impl.pool.Executor$Action)
{
io.vertx.core.net.impl.pool.Executor v;
io.vertx.core.net.impl.pool.Executor$Action v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.net.impl.pool.Executor$Action;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.net.impl.pool.Executor sync>;
interfaceinvoke v.<io.vertx.core.net.impl.pool.Executor: void submit(io.vertx.core.net.impl.pool.Executor$Action)>(v);
return;
}
public int size()
{
int v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int size>;
return v;
}
public void connect(io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot, io.vertx.core.net.impl.pool.PoolWaiter)
{
io.vertx.core.impl.EventLoopContext v;
io.vertx.core.net.impl.pool.PoolConnector v;
io.vertx.core.net.impl.pool.PoolWaiter v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot v;
io.vertx.core.Handler v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot;
v := @parameter: io.vertx.core.net.impl.pool.PoolWaiter;
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot: io.vertx.core.net.impl.pool.PoolWaiter initiator> = v;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.net.impl.pool.PoolConnector connector>;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot: io.vertx.core.impl.EventLoopContext context>;
v = staticinvoke <io.vertx.core.net.impl.pool.SimpleConnectionPool$lambda_connect_2__1394: io.vertx.core.Handler bootstrap$(io.vertx.core.net.impl.pool.SimpleConnectionPool,io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot,io.vertx.core.net.impl.pool.PoolWaiter)>(v, v, v);
interfaceinvoke v.<io.vertx.core.net.impl.pool.PoolConnector: void connect(io.vertx.core.impl.EventLoopContext,io.vertx.core.net.impl.pool.PoolConnector$Listener,io.vertx.core.Handler)>(v, v, v);
return;
}
private void setConcurrency(io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot, long)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$SetConcurrency v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot v;
long v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot;
v := @parameter: long;
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$SetConcurrency;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$SetConcurrency: void <init>(io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot,long)>(v, v);
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void execute(io.vertx.core.net.impl.pool.Executor$Action)>(v);
return;
}
private void remove(io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool$Remove v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot;
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$Remove;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Remove: void <init>(io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot)>(v);
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void execute(io.vertx.core.net.impl.pool.Executor$Action)>(v);
return;
}
public void evict(java.util.function.Predicate, io.vertx.core.Handler)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
java.util.function.Predicate v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Evict v;
io.vertx.core.Handler v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: java.util.function.Predicate;
v := @parameter: io.vertx.core.Handler;
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$Evict;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Evict: void <init>(java.util.function.Predicate,io.vertx.core.Handler)>(v, v);
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void execute(io.vertx.core.net.impl.pool.Executor$Action)>(v);
return;
}
public void acquire(io.vertx.core.impl.ContextInternal, io.vertx.core.net.impl.pool.PoolWaiter$Listener, int, io.vertx.core.Handler)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
io.vertx.core.impl.ContextInternal v;
int[] v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Acquire v;
int v, v;
io.vertx.core.Handler v;
io.vertx.core.net.impl.pool.PoolWaiter$Listener v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.impl.ContextInternal;
v := @parameter: io.vertx.core.net.impl.pool.PoolWaiter$Listener;
v := @parameter: int;
v := @parameter: io.vertx.core.Handler;
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$Acquire;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int[] capacityFactors>;
v = v[v];
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Acquire: void <init>(io.vertx.core.impl.ContextInternal,io.vertx.core.net.impl.pool.PoolWaiter$Listener,int,io.vertx.core.Handler)>(v, v, v, v);
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void execute(io.vertx.core.net.impl.pool.Executor$Action)>(v);
return;
}
public void acquire(io.vertx.core.impl.ContextInternal, int, io.vertx.core.Handler)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
int v;
io.vertx.core.impl.ContextInternal v;
io.vertx.core.Handler v;
io.vertx.core.net.impl.pool.PoolWaiter$Listener v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.impl.ContextInternal;
v := @parameter: int;
v := @parameter: io.vertx.core.Handler;
v = <io.vertx.core.net.impl.pool.PoolWaiter: io.vertx.core.net.impl.pool.PoolWaiter$Listener NULL_LISTENER>;
virtualinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void acquire(io.vertx.core.impl.ContextInternal,io.vertx.core.net.impl.pool.PoolWaiter$Listener,int,io.vertx.core.Handler)>(v, v, v, v);
return;
}
public void cancel(io.vertx.core.net.impl.pool.PoolWaiter, io.vertx.core.Handler)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool$Cancel v;
io.vertx.core.net.impl.pool.PoolWaiter v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
io.vertx.core.Handler v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.net.impl.pool.PoolWaiter;
v := @parameter: io.vertx.core.Handler;
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$Cancel;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Cancel: void <init>(io.vertx.core.net.impl.pool.PoolWaiter,io.vertx.core.Handler)>(v, v);
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void execute(io.vertx.core.net.impl.pool.Executor$Action)>(v);
return;
}
private void recycle(io.vertx.core.net.impl.pool.SimpleConnectionPool$LeaseImpl)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool$LeaseImpl v;
java.lang.IllegalStateException v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Recycle v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot v;
boolean v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.net.impl.pool.SimpleConnectionPool$LeaseImpl;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$LeaseImpl: boolean recycled>;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Attempt to recycle more than permitted");
throw v;
label:
v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$LeaseImpl: boolean recycled> = 1;
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$Recycle;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$LeaseImpl: io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot slot>;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Recycle: void <init>(io.vertx.core.net.impl.pool.SimpleConnectionPool$Slot)>(v);
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void execute(io.vertx.core.net.impl.pool.Executor$Action)>(v);
return;
}
public int waiters()
{
int v;
io.vertx.core.net.impl.pool.SimpleConnectionPool$Waiters v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.net.impl.pool.SimpleConnectionPool$Waiters waiters>;
v = virtualinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Waiters: int size()>();
return v;
}
public int capacity()
{
int v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int capacity>;
return v;
}
public int requests()
{
int v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v = v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: int requests>;
return v;
}
public void close(io.vertx.core.Handler)
{
io.vertx.core.net.impl.pool.SimpleConnectionPool$Close v;
io.vertx.core.Handler v;
io.vertx.core.net.impl.pool.SimpleConnectionPool v;
v := @this: io.vertx.core.net.impl.pool.SimpleConnectionPool;
v := @parameter: io.vertx.core.Handler;
v = new io.vertx.core.net.impl.pool.SimpleConnectionPool$Close;
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool$Close: void <init>(io.vertx.core.Handler)>(v);
specialinvoke v.<io.vertx.core.net.impl.pool.SimpleConnectionPool: void execute(io.vertx.core.net.impl.pool.Executor$Action)>(v);
return;
}
static void <clinit>()
{
io.vertx.core.Future v;
java.util.function.BiFunction v, v;
v = staticinvoke <io.vertx.core.Future: io.vertx.core.Future failedFuture(java.lang.String)>("Pool closed");
<io.vertx.core.net.impl.pool.SimpleConnectionPool: io.vertx.core.Future POOL_CLOSED> = v;
v = staticinvoke <io.vertx.core.net.impl.pool.SimpleConnectionPool$lambda_static_0__1395: java.util.function.BiFunction bootstrap$()>();
<io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.BiFunction SAME_EVENT_LOOP_SELECTOR> = v;
v = staticinvoke <io.vertx.core.net.impl.pool.SimpleConnectionPool$lambda_static_1__1396: java.util.function.BiFunction bootstrap$()>();
<io.vertx.core.net.impl.pool.SimpleConnectionPool: java.util.function.BiFunction FIRST_AVAILABLE_SELECTOR> = v;
return;
}
}