Author: toad
Date: 2008-05-21 12:16:57 +0000 (Wed, 21 May 2008)
New Revision: 20006

Modified:
   
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
   
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
   
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
Log:
Move innerRegister as well

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java  
    2008-05-21 12:15:00 UTC (rev 20005)
+++ 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java  
    2008-05-21 12:16:57 UTC (rev 20006)
@@ -3,6 +3,7 @@
  * http://www.gnu.org/ for further details of the GPL. */
 package freenet.client.async;

+import java.util.HashSet;
 import java.util.Map;

 import freenet.crypt.RandomSource;
@@ -45,10 +46,11 @@
         * To speed up fetching, a RGA or SVBN must only exist if it is 
non-empty.
         */
        protected final SortedVectorByNumber[] priorities;
+       protected final Map allRequestsByClientRequest;

-
-       protected ClientRequestSchedulerBase(Map pendingKeys) {
+       protected ClientRequestSchedulerBase(Map pendingKeys, Map 
allRequestsByClientRequest) {
                this.pendingKeys = pendingKeys;
+               this.allRequestsByClientRequest = allRequestsByClientRequest;
                priorities = new 
SortedVectorByNumber[RequestStarter.NUMBER_OF_PRIORITY_CLASSES];
                logMINOR = Logger.shouldLog(Logger.MINOR, 
ClientRequestSchedulerBase.class);
        }
@@ -207,7 +209,20 @@
                        return pendingKeys.size();
                else return 0;
        }
-
+       
+       synchronized void innerRegister(SendableRequest req, RandomSource 
random) {
+               if(logMINOR) Logger.minor(this, "Still registering "+req+" at 
prio "+req.getPriorityClass()+" retry "+req.getRetryCount()+" for 
"+req.getClientRequest());
+               int retryCount = req.getRetryCount();
+               addToGrabArray(req.getPriorityClass(), retryCount, 
fixRetryCount(retryCount), req.getClient(), req.getClientRequest(), req, 
random);
+               HashSet v = (HashSet) 
allRequestsByClientRequest.get(req.getClientRequest());
+               if(v == null) {
+                       v = new HashSet();
+                       allRequestsByClientRequest.put(req.getClientRequest(), 
v);
+               }
+               v.add(req);
+               if(logMINOR) Logger.minor(this, "Registered "+req+" on 
prioclass="+req.getPriorityClass()+", retrycount="+req.getRetryCount()+" 
v.size()="+v.size());
+       }
+       
        synchronized void addToGrabArray(short priorityClass, int retryCount, 
int rc, Object client, ClientRequester cr, SendableRequest req, RandomSource 
random) {
                if((priorityClass > RequestStarter.MINIMUM_PRIORITY_CLASS) || 
(priorityClass < RequestStarter.MAXIMUM_PRIORITY_CLASS))
                        throw new IllegalStateException("Invalid priority: 
"+priorityClass+" - range is "+RequestStarter.MAXIMUM_PRIORITY_CLASS+" (most 
important) to "+RequestStarter.MINIMUM_PRIORITY_CLASS+" (least important)");

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java  
    2008-05-21 12:15:00 UTC (rev 20005)
+++ 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java  
    2008-05-21 12:16:57 UTC (rev 20006)
@@ -37,7 +37,6 @@
        private final long nodeDBHandle;
        final boolean isInsertScheduler;
        final boolean isSSKScheduler;
-       private final Map allRequestsByClientRequest;
        // FIXME cooldown queue ????
        // Can we make the cooldown queue non-persistent? It refers to 
SendableGet's ... so
        // keeping it in memory may be a problem...
@@ -73,11 +72,10 @@
        }

        ClientRequestSchedulerCore(Node node, boolean forInserts, boolean 
forSSKs, ObjectContainer selectorContainer) {
-               super(forInserts ? null : 
selectorContainer.ext().collections().newHashMap(1024));
+               super(forInserts ? null : 
selectorContainer.ext().collections().newHashMap(1024), 
selectorContainer.ext().collections().newHashMap(32));
                this.nodeDBHandle = node.nodeDBHandle;
                this.isInsertScheduler = forInserts;
                this.isSSKScheduler = forSSKs;
-               allRequestsByClientRequest = 
selectorContainer.ext().collections().newHashMap(32);
                recentSuccesses = 
selectorContainer.ext().collections().newLinkedList();
        }

@@ -87,19 +85,6 @@
                ((Db4oList)recentSuccesses).activationDepth(1);
        }

-       synchronized void innerRegister(SendableRequest req, RandomSource 
random) {
-               if(logMINOR) Logger.minor(this, "Still registering "+req+" at 
prio "+req.getPriorityClass()+" retry "+req.getRetryCount()+" for 
"+req.getClientRequest());
-               int retryCount = req.getRetryCount();
-               addToGrabArray(req.getPriorityClass(), retryCount, 
fixRetryCount(retryCount), req.getClient(), req.getClientRequest(), req, 
random);
-               HashSet v = (HashSet) 
allRequestsByClientRequest.get(req.getClientRequest());
-               if(v == null) {
-                       v = new HashSet();
-                       allRequestsByClientRequest.put(req.getClientRequest(), 
v);
-               }
-               v.add(req);
-               if(logMINOR) Logger.minor(this, "Registered "+req+" on 
prioclass="+req.getPriorityClass()+", retrycount="+req.getRetryCount()+" 
v.size()="+v.size());
-       }
-       
        private int removeFirstAccordingToPriorities(boolean tryOfferedKeys, 
int fuzz, RandomSource random, OfferedKeysList[] offeredKeys){
                SortedVectorByNumber result = null;


Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
     2008-05-21 12:15:00 UTC (rev 20005)
+++ 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
     2008-05-21 12:16:57 UTC (rev 20006)
@@ -31,7 +31,7 @@
        final LinkedList /* <BaseSendableGet> */ recentSuccesses;

        ClientRequestSchedulerNonPersistent(ClientRequestScheduler sched) {
-               super(sched.isInsertScheduler ? null : new HashMap());
+               super(sched.isInsertScheduler ? null : new HashMap(), new 
HashMap());
                allRequestsByClientRequest = new HashMap();
                priorities = new 
SortedVectorByNumber[RequestStarter.NUMBER_OF_PRIORITY_CLASSES];
                recentSuccesses = new LinkedList();


Reply via email to