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