Author: toad
Date: 2009-02-14 01:30:13 +0000 (Sat, 14 Feb 2009)
New Revision: 25638

Modified:
   branches/db4o/freenet/src/freenet/client/FECCodec.java
   branches/db4o/freenet/src/freenet/client/FECJob.java
   branches/db4o/freenet/src/freenet/client/FECQueue.java
   branches/db4o/freenet/src/freenet/client/StandardOnionFECCodec.java
Log:
Don't store FECCodec's


Modified: branches/db4o/freenet/src/freenet/client/FECCodec.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FECCodec.java      2009-02-14 
01:25:14 UTC (rev 25637)
+++ branches/db4o/freenet/src/freenet/client/FECCodec.java      2009-02-14 
01:30:13 UTC (rev 25638)
@@ -373,4 +373,6 @@
        public void objectCanDeactivate(ObjectContainer container) {
                Logger.minor(this, "Deactivating "+this, new 
Exception("debug"));
        }
+
+       public abstract short getAlgorithm();
 }

Modified: branches/db4o/freenet/src/freenet/client/FECJob.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FECJob.java        2009-02-14 
01:25:14 UTC (rev 25637)
+++ branches/db4o/freenet/src/freenet/client/FECJob.java        2009-02-14 
01:30:13 UTC (rev 25638)
@@ -5,6 +5,7 @@
 
 import com.db4o.ObjectContainer;
 
+import freenet.support.Executor;
 import freenet.support.Logger;
 import freenet.support.api.Bucket;
 import freenet.support.api.BucketFactory;
@@ -16,7 +17,8 @@
  */
 public class FECJob {
        
-       private final FECCodec codec;
+       private transient FECCodec codec;
+       private short fecAlgo;
        final Bucket[] dataBlocks, checkBlocks;
        final SplitfileBlock[] dataBlockStatus, checkBlockStatus;
        final BucketFactory bucketFactory;
@@ -38,6 +40,7 @@
        
        public FECJob(FECCodec codec, FECQueue queue, SplitfileBlock[] 
dataBlockStatus, SplitfileBlock[] checkBlockStatus,  int blockLength, 
BucketFactory bucketFactory, FECCallback callback, boolean isADecodingJob, 
short priority, boolean persistent) {
                this.codec = codec;
+               this.fecAlgo = codec.getAlgorithm();
                this.queue = queue;
                this.priority = priority;
                this.addedTime = System.currentTimeMillis();
@@ -88,7 +91,10 @@
                this.persistent = persistent;
        }
 
-       public FECCodec getCodec() {
+       public FECCodec getCodec(Executor executor) {
+               if(codec == null) {
+                       codec = FECCodec.getCodec(fecAlgo, dataBlocks.length, 
executor);
+               }
                return codec;
        }
        

Modified: branches/db4o/freenet/src/freenet/client/FECQueue.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FECQueue.java      2009-02-14 
01:25:14 UTC (rev 25637)
+++ branches/db4o/freenet/src/freenet/client/FECQueue.java      2009-02-14 
01:30:13 UTC (rev 25638)
@@ -174,10 +174,10 @@
                                        // Encode it
                                        try {
                                                if (job.isADecodingJob)
-                                                       
job.getCodec().realDecode(job.dataBlockStatus, job.checkBlockStatus, 
job.blockLength,
+                                                       
job.getCodec(executor).realDecode(job.dataBlockStatus, job.checkBlockStatus, 
job.blockLength,
                                                                
job.bucketFactory);
                                                else {
-                                                       
job.getCodec().realEncode(job.dataBlocks, job.checkBlocks, job.blockLength, 
job.bucketFactory);
+                                                       
job.getCodec(executor).realEncode(job.dataBlocks, job.checkBlocks, 
job.blockLength, job.bucketFactory);
                                                        // Update 
SplitFileBlocks from buckets if necessary
                                                        if 
((job.dataBlockStatus != null) || (job.checkBlockStatus != null)) {
                                                                for (int i = 0; 
i < job.dataBlocks.length; i++)

Modified: branches/db4o/freenet/src/freenet/client/StandardOnionFECCodec.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/StandardOnionFECCodec.java 
2009-02-14 01:25:14 UTC (rev 25637)
+++ branches/db4o/freenet/src/freenet/client/StandardOnionFECCodec.java 
2009-02-14 01:30:13 UTC (rev 25638)
@@ -116,4 +116,9 @@
        public String toString() {
                return super.toString()+":n="+n+",k="+k;
        }
+
+       @Override
+       public short getAlgorithm() {
+               return Metadata.SPLITFILE_ONION_STANDARD;
+       }
 }

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

Reply via email to