[freenet-cvs] r20226 - in branches/db4o/freenet/src/freenet/client: . async

toad at freenetproject.org toad at freenetproject.org
Thu Jun 5 19:31:20 UTC 2008


Author: toad
Date: 2008-06-05 19:31:19 +0000 (Thu, 05 Jun 2008)
New Revision: 20226

Modified:
   branches/db4o/freenet/src/freenet/client/FECCallback.java
   branches/db4o/freenet/src/freenet/client/FECQueue.java
   branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
   branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
Log:
Add ClientContext to the FEC API.

Modified: branches/db4o/freenet/src/freenet/client/FECCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FECCallback.java	2008-06-05 19:26:09 UTC (rev 20225)
+++ branches/db4o/freenet/src/freenet/client/FECCallback.java	2008-06-05 19:31:19 UTC (rev 20226)
@@ -5,6 +5,8 @@
 
 import com.db4o.ObjectContainer;
 
+import freenet.client.async.ClientContext;
+
 /**
  * An interface wich has to be implemented by FECJob submitters
  * 
@@ -14,7 +16,7 @@
  */
 public interface FECCallback {
 
-	public void onEncodedSegment(ObjectContainer container);
+	public void onEncodedSegment(ObjectContainer container, ClientContext context);
 
-	public void onDecodedSegment(ObjectContainer container);
+	public void onDecodedSegment(ObjectContainer container, ClientContext context);
 }
\ No newline at end of file

Modified: branches/db4o/freenet/src/freenet/client/FECQueue.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FECQueue.java	2008-06-05 19:26:09 UTC (rev 20225)
+++ branches/db4o/freenet/src/freenet/client/FECQueue.java	2008-06-05 19:31:19 UTC (rev 20226)
@@ -11,10 +11,10 @@
 import com.db4o.ObjectSet;
 import com.db4o.query.Query;
 
+import freenet.client.async.ClientContext;
 import freenet.client.async.DBJob;
 import freenet.client.async.DBJobRunner;
 import freenet.node.PrioRunnable;
-import freenet.node.RequestScheduler;
 import freenet.support.Executor;
 import freenet.support.Logger;
 import freenet.support.OOMHandler;
@@ -35,13 +35,15 @@
 	private transient int priorities;
 	private transient DBJobRunner databaseJobRunner;
 	private transient Executor executor;
+	private transient ClientContext clientContext;
 
 	/** Called after creating or deserializing the FECQueue. Initialises all the transient fields. */
-	void init(int priorities, int maxCacheSize, DBJobRunner dbJobRunner, Executor exec) {
+	void init(int priorities, int maxCacheSize, DBJobRunner dbJobRunner, Executor exec, ClientContext clientContext) {
 		this.priorities = priorities;
 		this.maxPersistentQueueCacheSize = maxCacheSize;
 		this.databaseJobRunner = dbJobRunner;
 		this.executor = exec;
+		this.clientContext = clientContext;
 		transientQueue = new LinkedList[priorities];
 		persistentQueueCache = new LinkedList[priorities];
 		for(int i=0;i<priorities;i++) {
@@ -142,17 +144,17 @@
 					try {
 						if(!job.persistent) {
 							if (job.isADecodingJob)
-								job.callback.onDecodedSegment(null);
+								job.callback.onDecodedSegment(null, clientContext);
 							else
-								job.callback.onEncodedSegment(null);
+								job.callback.onEncodedSegment(null, clientContext);
 						} else {
 							databaseJobRunner.queue(new DBJob() {
 
 								public void run(ObjectContainer container) {
 									if(job.isADecodingJob)
-										job.callback.onDecodedSegment(container);
+										job.callback.onDecodedSegment(container, clientContext);
 									else
-										job.callback.onEncodedSegment(container);
+										job.callback.onEncodedSegment(container, clientContext);
 									container.delete(job);
 								}
 								

Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java	2008-06-05 19:26:09 UTC (rev 20225)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java	2008-06-05 19:31:19 UTC (rev 20226)
@@ -219,7 +219,7 @@
 		}
 	}
 	
-	public void onDecodedSegment(ObjectContainer container) {
+	public void onDecodedSegment(ObjectContainer container, ClientContext context) {
 		try {
 			if(isCollectingBinaryBlob()) {
 				for(int i=0;i<dataBuckets.length;i++) {
@@ -266,11 +266,12 @@
 
 		// Encode any check blocks we don't have
 		if(codec != null) {
-			codec.addToQueue(new FECJob(codec, dataBuckets, checkBuckets, 32768, fetchContext.bucketFactory, this, false));
+			codec.addToQueue(new FECJob(codec, context.fecQueue, dataBuckets, checkBuckets, 32768, fetchContext.bucketFactory, this, false, parentFetcher.parent.getPriorityClass(), parentFetcher.parent.isPersistent()),
+					context.fecQueue, container);
 		}
 	}
 
-	public void onEncodedSegment(ObjectContainer container) {
+	public void onEncodedSegment(ObjectContainer container, ClientContext context) {
 		synchronized(this) {
 			// Now insert *ALL* blocks on which we had at least one failure, and didn't eventually succeed
 			for(int i=0;i<dataBuckets.length;i++) {

Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java	2008-06-05 19:26:09 UTC (rev 20225)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java	2008-06-05 19:31:19 UTC (rev 20226)
@@ -464,9 +464,9 @@
 		}
 	}
 
-	public void onDecodedSegment(ObjectContainer container) {} // irrevelant
+	public void onDecodedSegment(ObjectContainer container, ClientContext context) {} // irrevelant
 
-	public void onEncodedSegment(ObjectContainer container) {
+	public void onEncodedSegment(ObjectContainer container, ClientContext context) {
 		// Start the inserts
 		try {
 			for (int i = 0; i < checkBlockInserters.length; i++) {




More information about the cvs mailing list