Author: toad
Date: 2009-03-06 22:37:26 +0000 (Fri, 06 Mar 2009)
New Revision: 25915

Modified:
   branches/db4o/freenet/src/freenet/client/FECJob.java
   branches/db4o/freenet/src/freenet/client/FECQueue.java
Log:
Missing files: cancelling FEC jobs


Modified: branches/db4o/freenet/src/freenet/client/FECJob.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FECJob.java        2009-03-06 
22:36:39 UTC (rev 25914)
+++ branches/db4o/freenet/src/freenet/client/FECJob.java        2009-03-06 
22:37:26 UTC (rev 25915)
@@ -5,6 +5,7 @@
 
 import com.db4o.ObjectContainer;
 
+import freenet.client.async.ClientContext;
 import freenet.support.Executor;
 import freenet.support.Logger;
 import freenet.support.api.Bucket;
@@ -218,4 +219,13 @@
                }
                return false;
        }
+
+       /**
+        * @param container
+        * @param context
+        * @return True unless we were unable to remove the job because it has 
already started.
+        */
+       public boolean cancel(ObjectContainer container, ClientContext context) 
{
+               return queue.cancel(this, container, context);
+       }
 }
\ No newline at end of file

Modified: branches/db4o/freenet/src/freenet/client/FECQueue.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FECQueue.java      2009-03-06 
22:36:39 UTC (rev 25914)
+++ branches/db4o/freenet/src/freenet/client/FECQueue.java      2009-03-06 
22:37:26 UTC (rev 25915)
@@ -415,4 +415,25 @@
        public void objectOnDeactivate(ObjectContainer container) {
                Logger.error(this, "Attempting to deactivate FECQueue!", new 
Exception("debug"));
        }
+
+       /**
+        * @param job
+        * @param container
+        * @param context
+        * @return True unless we were unable to remove the job because it has 
already started.
+        */
+       public boolean cancel(FECJob job, ObjectContainer container, 
ClientContext context) {
+               synchronized(this) {
+                       for(int i=0;i<priorities;i++) {
+                               transientQueue[i].remove(job);
+                               persistentQueueCache[i].remove(job);
+                       }
+               }
+               synchronized(job) {
+                       if(job.running) return false;
+               }
+               if(job.persistent)
+                       container.delete(job);
+               return true;
+       }
 }

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

Reply via email to