Author: toad
Date: 2009-04-20 22:31:47 +0000 (Mon, 20 Apr 2009)
New Revision: 27125

Modified:
   trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
   trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
   trunk/freenet/src/freenet/client/async/OfferedKeysList.java
   trunk/freenet/src/freenet/client/async/SplitFileFetcherSubSegment.java
   trunk/freenet/src/freenet/client/async/USKFetcher.java
   trunk/freenet/src/freenet/node/BaseSendableGet.java
Log:
Add boolean toNetwork to preRegister callback


Modified: trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java   
2009-04-20 22:21:48 UTC (rev 27124)
+++ trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java   
2009-04-20 22:31:47 UTC (rev 27125)
@@ -353,7 +353,7 @@
        }
        
        @Override
-       public void preRegister(ObjectContainer container, ClientContext 
context) {
+       public void preRegister(ObjectContainer container, ClientContext 
context, boolean toNetwork) {
                // Ignore
        }
 

Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2009-04-20 22:21:48 UTC (rev 27124)
+++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2009-04-20 22:31:47 UTC (rev 27125)
@@ -396,11 +396,13 @@
                                        for(int i=0;i<getters.length;i++) {
                                                SendableGet getter = getters[i];
                                                container.activate(getter, 1);
-                                               getter.preRegister(container, 
clientContext);
                                                
if(!(getter.isCancelled(container) || getter.isEmpty(container))) {
                                                        wereAnyValid = true;
+                                                       
getter.preRegister(container, clientContext, true);
                                                        
schedCore.innerRegister(getter, random, container, getters);
-                                               }
+                                               } else
+                                                       
getter.preRegister(container, clientContext, false);
+
                                        }
                                        if(!wereAnyValid) {
                                                Logger.normal(this, "No 
requests valid: "+getters);
@@ -423,11 +425,12 @@
                                                        
if(container.ext().isActive(getter))
                                                                
Logger.error(this, "ALREADY ACTIVE in delayed finishRegister: "+getter);
                                                        
container.activate(getter, 1);
-                                                       
getter.preRegister(container, clientContext);
                                                        
if(!(getter.isCancelled(container) || getter.isEmpty(container))) {
                                                                wereAnyValid = 
true;
+                                                               
getter.preRegister(container, clientContext, true);
                                                                
schedCore.innerRegister(getter, random, container, getters);
-                                                       }
+                                                       } else
+                                                               
getter.preRegister(container, clientContext, false);
                                                        
container.deactivate(getter, 1);
                                                }
                                                if(!wereAnyValid) {
@@ -444,9 +447,12 @@
                } else {
                        // Register immediately.
                        for(int i=0;i<getters.length;i++) {
-                               getters[i].preRegister(container, 
clientContext);
-                               if(!anyValid) continue; // Call preRegister 
anyway, some getters may be waiting for it
-                               if(getters[i].isCancelled(null) || 
getters[i].isEmpty(null)) continue;
+                               
+                               if((!anyValid) || getters[i].isCancelled(null) 
|| getters[i].isEmpty(null)) {
+                                       getters[i].preRegister(container, 
clientContext, false);
+                                       continue;
+                               } else
+                                       getters[i].preRegister(container, 
clientContext, true);
                                schedTransient.innerRegister(getters[i], 
random, null, getters);
                        }
                        starter.wakeUp();

Modified: trunk/freenet/src/freenet/client/async/OfferedKeysList.java
===================================================================
--- trunk/freenet/src/freenet/client/async/OfferedKeysList.java 2009-04-20 
22:21:48 UTC (rev 27124)
+++ trunk/freenet/src/freenet/client/async/OfferedKeysList.java 2009-04-20 
22:31:47 UTC (rev 27125)
@@ -246,7 +246,7 @@
        }
 
        @Override
-       public void preRegister(ObjectContainer container, ClientContext 
context) {
+       public void preRegister(ObjectContainer container, ClientContext 
context, boolean toNetwork) {
                // Ignore
        }
 

Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcherSubSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcherSubSegment.java      
2009-04-20 22:21:48 UTC (rev 27124)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcherSubSegment.java      
2009-04-20 22:31:47 UTC (rev 27125)
@@ -865,7 +865,7 @@
        }
        
        @Override
-       public void preRegister(ObjectContainer container, ClientContext 
context) {
+       public void preRegister(ObjectContainer container, ClientContext 
context, boolean toNetwork) {
                // Ignore
        }
 

Modified: trunk/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKFetcher.java      2009-04-20 
22:21:48 UTC (rev 27124)
+++ trunk/freenet/src/freenet/client/async/USKFetcher.java      2009-04-20 
22:31:47 UTC (rev 27125)
@@ -806,7 +806,7 @@
                        }
 
                        @Override
-                       public void preRegister(ObjectContainer container, 
ClientContext context) {
+                       public void preRegister(ObjectContainer container, 
ClientContext context, boolean toNetwork) {
                                unregister(container, context);
                                USKAttempt[] attempts;
                                synchronized(USKFetcher.this) {

Modified: trunk/freenet/src/freenet/node/BaseSendableGet.java
===================================================================
--- trunk/freenet/src/freenet/node/BaseSendableGet.java 2009-04-20 22:21:48 UTC 
(rev 27124)
+++ trunk/freenet/src/freenet/node/BaseSendableGet.java 2009-04-20 22:31:47 UTC 
(rev 27125)
@@ -17,6 +17,8 @@
        public abstract boolean hasValidKeys(KeysFetchingLocally fetching, 
ObjectContainer container, ClientContext context);
 
        /** Called after checking the datastore and before registering the 
request to be 
-        * sent. Some gets may want to cancel here, some may want to send an 
event to FCP. */
-       public abstract void preRegister(ObjectContainer container, 
ClientContext context);
+        * sent. Some gets may want to cancel here, some may want to send an 
event to FCP. 
+        * @param toNetwork If true, we are actually going to send requests 
(unless we
+        * cancel in this callback). If false, we completed all the work 
assigned. */
+       public abstract void preRegister(ObjectContainer container, 
ClientContext context, boolean toNetwork);
 }

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to