public class org.apache.http.impl.conn.tsccm.RouteSpecificPool extends java.lang.Object
{
private final org.apache.commons.logging.Log log;
protected final org.apache.http.conn.routing.HttpRoute route;
protected final int maxEntries;
protected final org.apache.http.conn.params.ConnPerRoute connPerRoute;
protected final java.util.LinkedList freeEntries;
protected final java.util.Queue waitingThreads;
protected int numEntries;
public void <init>(org.apache.http.conn.routing.HttpRoute, int)
{
org.apache.http.conn.routing.HttpRoute v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
int v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool$1 v;
java.lang.Class v;
org.apache.commons.logging.Log v;
java.util.LinkedList v, v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v := @parameter: org.apache.http.conn.routing.HttpRoute;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.commons.logging.Log log> = v;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.routing.HttpRoute route> = v;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int maxEntries> = v;
v = new org.apache.http.impl.conn.tsccm.RouteSpecificPool$1;
specialinvoke v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool$1: void <init>(org.apache.http.impl.conn.tsccm.RouteSpecificPool)>(v);
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.params.ConnPerRoute connPerRoute> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.Queue waitingThreads> = v;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries> = 0;
return;
}
public void <init>(org.apache.http.conn.routing.HttpRoute, org.apache.http.conn.params.ConnPerRoute)
{
org.apache.http.conn.routing.HttpRoute v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
int v;
java.lang.Class v;
org.apache.commons.logging.Log v;
org.apache.http.conn.params.ConnPerRoute v;
java.util.LinkedList v, v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v := @parameter: org.apache.http.conn.routing.HttpRoute;
v := @parameter: org.apache.http.conn.params.ConnPerRoute;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.commons.logging.Log log> = v;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.routing.HttpRoute route> = v;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.params.ConnPerRoute connPerRoute> = v;
v = interfaceinvoke v.<org.apache.http.conn.params.ConnPerRoute: int getMaxForRoute(org.apache.http.conn.routing.HttpRoute)>(v);
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int maxEntries> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.Queue waitingThreads> = v;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries> = 0;
return;
}
public final org.apache.http.conn.routing.HttpRoute getRoute()
{
org.apache.http.conn.routing.HttpRoute v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.routing.HttpRoute route>;
return v;
}
public final int getMaxEntries()
{
int v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int maxEntries>;
return v;
}
public boolean isUnused()
{
int v;
java.util.Queue v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
boolean v, v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
if v >= 1 goto label;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.Queue waitingThreads>;
v = interfaceinvoke v.<java.util.Queue: boolean isEmpty()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int getCapacity()
{
int v, v, v;
org.apache.http.conn.params.ConnPerRoute v;
org.apache.http.conn.routing.HttpRoute v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.params.ConnPerRoute connPerRoute>;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.routing.HttpRoute route>;
v = interfaceinvoke v.<org.apache.http.conn.params.ConnPerRoute: int getMaxForRoute(org.apache.http.conn.routing.HttpRoute)>(v);
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
v = v - v;
return v;
}
public final int getEntryCount()
{
int v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
return v;
}
public org.apache.http.impl.conn.tsccm.BasicPoolEntry allocEntry(java.lang.Object)
{
java.util.ListIterator v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
int v, v;
java.util.LinkedList v, v, v, v, v;
boolean v, v, v, v;
java.lang.Object v, v, v, v, v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v := @parameter: java.lang.Object;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries>;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = virtualinvoke v.<java.util.LinkedList: java.util.ListIterator listIterator(int)>(v);
label:
v = interfaceinvoke v.<java.util.ListIterator: boolean hasPrevious()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.ListIterator: java.lang.Object previous()>();
v = virtualinvoke v.<org.apache.http.impl.conn.tsccm.BasicPoolEntry: java.lang.Object getState()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.http.impl.conn.tsccm.BasicPoolEntry: java.lang.Object getState()>();
v = staticinvoke <org.apache.http.util.LangUtils: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
label:
interfaceinvoke v.<java.util.ListIterator: void remove()>();
return v;
label:
v = virtualinvoke v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int getCapacity()>();
if v != 0 goto label;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object remove()>();
virtualinvoke v.<org.apache.http.impl.conn.tsccm.BasicPoolEntry: void shutdownEntry()>();
virtualinvoke v.<org.apache.http.impl.conn.tsccm.BasicPoolEntry: org.apache.http.conn.OperatedClientConnection getConnection()>();
return v;
label:
return null;
}
public void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry)
{
java.lang.IllegalStateException v, v;
org.apache.http.conn.routing.HttpRoute v, v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
org.apache.http.impl.conn.tsccm.BasicPoolEntry v;
int v, v, v;
java.lang.String v, v;
java.util.LinkedList v, v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v := @parameter: org.apache.http.impl.conn.tsccm.BasicPoolEntry;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
if v >= 1 goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.routing.HttpRoute route>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.http.conn.routing.HttpRoute)>(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[])>("No entry created for this pool. \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
if v > v goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.routing.HttpRoute route>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.http.conn.routing.HttpRoute)>(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[])>("No entry allocated from this pool. \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries>;
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
return;
}
public void createdEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry)
{
org.apache.http.impl.conn.tsccm.BasicPoolEntry v;
int v, v;
org.apache.http.conn.routing.HttpRoute v, v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
boolean v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v := @parameter: org.apache.http.impl.conn.tsccm.BasicPoolEntry;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: org.apache.http.conn.routing.HttpRoute route>;
v = virtualinvoke v.<org.apache.http.impl.conn.tsccm.BasicPoolEntry: org.apache.http.conn.routing.HttpRoute getPlannedRoute()>();
v = virtualinvoke v.<org.apache.http.conn.routing.HttpRoute: boolean equals(java.lang.Object)>(v);
staticinvoke <org.apache.http.util.Args: void check(boolean,java.lang.String)>(v, "Entry not planned for this pool");
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
v = v + 1;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries> = v;
return;
}
public boolean deleteEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry)
{
org.apache.http.impl.conn.tsccm.BasicPoolEntry v;
int v, v;
java.util.LinkedList v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
boolean v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v := @parameter: org.apache.http.impl.conn.tsccm.BasicPoolEntry;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.LinkedList freeEntries>;
v = virtualinvoke v.<java.util.LinkedList: boolean remove(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
v = v - 1;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries> = v;
label:
return v;
}
public void dropEntry()
{
int v, v, v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
boolean v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.http.util.Asserts: void check(boolean,java.lang.String)>(v, "There is no entry that could be dropped");
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries>;
v = v - 1;
v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: int numEntries> = v;
return;
}
public void queueThread(org.apache.http.impl.conn.tsccm.WaitingThread)
{
org.apache.http.impl.conn.tsccm.WaitingThread v;
java.util.Queue v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v := @parameter: org.apache.http.impl.conn.tsccm.WaitingThread;
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Waiting thread");
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.Queue waitingThreads>;
interfaceinvoke v.<java.util.Queue: boolean add(java.lang.Object)>(v);
return;
}
public boolean hasThread()
{
java.util.Queue v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
boolean v, v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.Queue waitingThreads>;
v = interfaceinvoke v.<java.util.Queue: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.http.impl.conn.tsccm.WaitingThread nextThread()
{
java.lang.Object v;
java.util.Queue v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.Queue waitingThreads>;
v = interfaceinvoke v.<java.util.Queue: java.lang.Object peek()>();
return v;
}
public void removeThread(org.apache.http.impl.conn.tsccm.WaitingThread)
{
org.apache.http.impl.conn.tsccm.WaitingThread v;
java.util.Queue v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
v := @parameter: org.apache.http.impl.conn.tsccm.WaitingThread;
if v != null goto label;
return;
label:
v = v.<org.apache.http.impl.conn.tsccm.RouteSpecificPool: java.util.Queue waitingThreads>;
interfaceinvoke v.<java.util.Queue: boolean remove(java.lang.Object)>(v);
return;
}
}