r27125 - in trunk/freenet/src/freenet: client/async node

[email protected] Mon, 20 Apr 2009 22:31:48 +0000
Newsgroups gmane.network.freenet.cvs
Message-ID <[email protected]>
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);
 }