Author: toad
Date: 2008-05-21 12:28:00 +0000 (Wed, 21 May 2008)
New Revision: 20010

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
   
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:
Some more juggling...

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-05-21 12:22:36 UTC (rev 20009)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-05-21 12:28:00 UTC (rev 20010)
@@ -265,10 +265,10 @@
        }

        public void succeeded(BaseSendableGet succeeded) {
-//             if(succeeded.persistent())
+               if(succeeded.persistent())
                        schedCore.succeeded(succeeded);
-//             else
-//                     schedTransient.succeeded(succeeded);
+               else
+                       schedTransient.succeeded(succeeded);
        }

        public void tripPendingKey(final KeyBlock block) {

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java  
    2008-05-21 12:22:36 UTC (rev 20009)
+++ 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java  
    2008-05-21 12:28:00 UTC (rev 20010)
@@ -4,11 +4,13 @@
 package freenet.client.async;

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

 import freenet.crypt.RandomSource;
 import freenet.keys.ClientKey;
 import freenet.keys.Key;
+import freenet.node.BaseSendableGet;
 import freenet.node.RequestStarter;
 import freenet.node.SendableGet;
 import freenet.node.SendableRequest;
@@ -33,6 +35,10 @@
        private static final int MIN_RETRY_COUNT = 3;

        private static boolean logMINOR;
+       
+       final boolean isInsertScheduler;
+       final boolean isSSKScheduler;
+       
        /** All pending gets by key. Used to automatically satisfy pending 
requests when either the key is fetched by
         * an overlapping request, or it is fetched by a request from another 
node. Operations on this are synchronized on
         * itself. */
@@ -47,10 +53,14 @@
         */
        protected final SortedVectorByNumber[] priorities;
        protected final Map allRequestsByClientRequest;
+       protected final List /* <BaseSendableGet> */ recentSuccesses;

-       protected ClientRequestSchedulerBase(Map pendingKeys, Map 
allRequestsByClientRequest) {
+       protected ClientRequestSchedulerBase(boolean forInserts, boolean 
forSSKs, Map pendingKeys, Map allRequestsByClientRequest, List recentSuccesses) 
{
+               this.isInsertScheduler = forInserts;
+               this.isSSKScheduler = forSSKs;
                this.pendingKeys = pendingKeys;
                this.allRequestsByClientRequest = allRequestsByClientRequest;
+               this.recentSuccesses = recentSuccesses;
                priorities = new 
SortedVectorByNumber[RequestStarter.NUMBER_OF_PRIORITY_CLASSES];
                logMINOR = Logger.shouldLog(Logger.MINOR, 
ClientRequestSchedulerBase.class);
        }
@@ -283,5 +293,15 @@
                }
        }

+       public void succeeded(BaseSendableGet succeeded) {
+               if(isInsertScheduler) return;
+               synchronized(this) {
+                       if(logMINOR)
+                               Logger.minor(this, "Recording successful fetch 
from "+succeeded);
+                       recentSuccesses.add(succeeded);
+                       while(recentSuccesses.size() > 8)
+                               recentSuccesses.remove(0);
+               }
+       }

 }

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java  
    2008-05-21 12:22:36 UTC (rev 20009)
+++ 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java  
    2008-05-21 12:28:00 UTC (rev 20010)
@@ -4,7 +4,6 @@
 package freenet.client.async;

 import java.util.HashSet;
-import java.util.List;

 import com.db4o.ObjectContainer;
 import com.db4o.ObjectSet;
@@ -34,12 +33,9 @@
        private static boolean logMINOR;
        /** Identifier in the database for the node we are attached to */
        private final long nodeDBHandle;
-       final boolean isInsertScheduler;
-       final boolean isSSKScheduler;
        // 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...
-       private final List /* <BaseSendableGet> */ recentSuccesses;

        /**
         * Fetch a ClientRequestSchedulerCore from the database, or create a 
new one.
@@ -71,11 +67,8 @@
        }

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

        private void onStarted() {
@@ -276,16 +269,5 @@
                RequestStarter.MINIMUM_PRIORITY_CLASS
        };

-       public void succeeded(BaseSendableGet succeeded) {
-               if(isInsertScheduler) return;
-               synchronized(this) {
-                       if(logMINOR)
-                               Logger.minor(this, "Recording successful fetch 
from "+succeeded);
-                       recentSuccesses.add(succeeded);
-                       while(recentSuccesses.size() > 8)
-                               recentSuccesses.remove(0);
-               }
-       }
-

 }

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
     2008-05-21 12:22:36 UTC (rev 20009)
+++ 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerNonPersistent.java
     2008-05-21 12:28:00 UTC (rev 20010)
@@ -31,7 +31,7 @@
        final LinkedList /* <BaseSendableGet> */ recentSuccesses;

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


Reply via email to