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++) {


Reply via email to