Author: xor
Date: 2008-11-13 19:59:26 +0000 (Thu, 13 Nov 2008)
New Revision: 23540
Modified:
trunk/plugins/WoT/introduction/IntroductionClient.java
Log:
New function.
Modified: trunk/plugins/WoT/introduction/IntroductionClient.java
===================================================================
--- trunk/plugins/WoT/introduction/IntroductionClient.java 2008-11-13
19:55:01 UTC (rev 23539)
+++ trunk/plugins/WoT/introduction/IntroductionClient.java 2008-11-13
19:59:26 UTC (rev 23540)
@@ -9,10 +9,12 @@
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import plugins.WoT.Identity;
import plugins.WoT.OwnIdentity;
+import plugins.WoT.exceptions.NotInTrustTreeException;
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
@@ -54,6 +56,8 @@
public static final int MAX_PUZZLES_PER_IDENTITY =
IntroductionServer.PUZZLE_COUNT;
private static final int MINIMUM_SCORE_FOR_PUZZLE_DOWNLOAD = 10; /*
FIXME: tweak before release */
+
+ private static final int MINIMUM_SCORE_FOR_PUZZLE_DISPLAY = 50; /*
FIXME: tweak before release */
private Thread mThread;
@@ -139,6 +143,30 @@
Logger.debug(this, "Stopped the introduction client.");
}
+ public synchronized List<IntroductionPuzzle> getPuzzles(OwnIdentity id,
int count) {
+ Query q = db.query();
+ q.constrain(IntroductionPuzzle.class);
+ q.descend("mSolution").constrain(null).identity(); /* FIXME:
toad said constrain(null) is maybe broken. If this is true: Alternative would
be: q.descend("mIdentity").constrain(OwnIdentity.class).not(); */
+ ObjectSet<IntroductionPuzzle> puzzles = q.execute();
+ ArrayList<IntroductionPuzzle> result = new
ArrayList<IntroductionPuzzle>(count);
+
+ for(IntroductionPuzzle p : puzzles) {
+ try {
+ int score = p.getInserter().getScore(id,
db).getScore();
+ if(score > MINIMUM_SCORE_FOR_PUZZLE_DISPLAY) {
+ result.add(p);
+ if(result.size() == count)
+ break;
+ }
+ }
+ catch(NotInTrustTreeException e) {
+ }
+ }
+
+ return result;
+ }
+
+
private synchronized void cancelRequests() {
Iterator<ClientGetter> i = mRequests.iterator();
int counter = 0;
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs