Author: toad
Date: 2006-08-05 20:31:16 +0000 (Sat, 05 Aug 2006)
New Revision: 9914
Added:
trunk/freenet/src/freenet/node/RequestScheduler.java
trunk/freenet/src/freenet/node/SendableGet.java
trunk/freenet/src/freenet/node/SendableInsert.java
trunk/freenet/src/freenet/node/SendableRequest.java
trunk/freenet/src/freenet/node/SimpleSendableInsert.java
Removed:
trunk/freenet/src/freenet/client/async/RequestScheduler.java
trunk/freenet/src/freenet/client/async/SendableGet.java
trunk/freenet/src/freenet/client/async/SendableInsert.java
trunk/freenet/src/freenet/client/async/SendableRequest.java
trunk/freenet/src/freenet/client/async/SimpleSendableInsert.java
Modified:
trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
trunk/freenet/src/freenet/client/async/SingleBlockInserter.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/RequestStarter.java
Log:
Move some Sendable* and RequestScheduler from freenet.client.async to
freenet.node; they're not really part of the client layer, they're more the
interface to it from the node layer.
Modified: trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
2006-08-05 20:02:30 UTC (rev 9913)
+++ trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
2006-08-05 20:31:16 UTC (rev 9914)
@@ -7,6 +7,7 @@
import freenet.keys.ClientSSK;
import freenet.node.LowLevelGetException;
import freenet.node.Node;
+import freenet.node.SendableGet;
import freenet.support.Logger;
public abstract class BaseSingleFileFetcher implements SendableGet {
Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
2006-08-05 20:02:30 UTC (rev 9913)
+++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
2006-08-05 20:31:16 UTC (rev 9914)
@@ -12,7 +12,10 @@
import freenet.keys.KeyVerifyException;
import freenet.node.LowLevelGetException;
import freenet.node.Node;
+import freenet.node.RequestScheduler;
import freenet.node.RequestStarter;
+import freenet.node.SendableGet;
+import freenet.node.SendableRequest;
import freenet.support.Logger;
import freenet.support.SectoredRandomGrabArrayWithClient;
import freenet.support.SectoredRandomGrabArrayWithInt;
Deleted: trunk/freenet/src/freenet/client/async/RequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/RequestScheduler.java
2006-08-05 20:02:30 UTC (rev 9913)
+++ trunk/freenet/src/freenet/client/async/RequestScheduler.java
2006-08-05 20:31:16 UTC (rev 9914)
@@ -1,7 +0,0 @@
-package freenet.client.async;
-
-public interface RequestScheduler {
-
- public SendableRequest removeFirst();
-
-}
Deleted: trunk/freenet/src/freenet/client/async/SendableGet.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SendableGet.java 2006-08-05
20:02:30 UTC (rev 9913)
+++ trunk/freenet/src/freenet/client/async/SendableGet.java 2006-08-05
20:31:16 UTC (rev 9914)
@@ -1,25 +0,0 @@
-package freenet.client.async;
-
-import freenet.keys.ClientKey;
-import freenet.keys.ClientKeyBlock;
-import freenet.node.LowLevelGetException;
-
-/**
- * A low-level key fetch which can be sent immediately. @see SendableRequest
- */
-public interface SendableGet extends SendableRequest {
-
- public ClientKey getKey();
-
- /** Called when/if the low-level request succeeds. */
- public void onSuccess(ClientKeyBlock block, boolean fromStore);
-
- /** Called when/if the low-level request fails. */
- public void onFailure(LowLevelGetException e);
-
- /** Should the request ignore the datastore? */
- public boolean ignoreStore();
-
- /** If true, don't cache local requests */
- public boolean dontCache();
-}
Deleted: trunk/freenet/src/freenet/client/async/SendableInsert.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SendableInsert.java 2006-08-05
20:02:30 UTC (rev 9913)
+++ trunk/freenet/src/freenet/client/async/SendableInsert.java 2006-08-05
20:31:16 UTC (rev 9914)
@@ -1,20 +0,0 @@
-package freenet.client.async;
-
-import freenet.keys.ClientKeyBlock;
-import freenet.node.LowLevelPutException;
-
-/**
- * Callback interface for a low level insert, which is immediately sendable.
These
- * should be registered on the ClientRequestScheduler when we want to send
them. It will
- * then, when it is time to send, create a thread, send the request, and call
the
- * callback below.
- */
-public interface SendableInsert extends SendableRequest {
-
- /** Called when we successfully insert the data */
- public void onSuccess();
-
- /** Called when we don't! */
- public void onFailure(LowLevelPutException e);
-
-}
Deleted: trunk/freenet/src/freenet/client/async/SendableRequest.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SendableRequest.java 2006-08-05
20:02:30 UTC (rev 9913)
+++ trunk/freenet/src/freenet/client/async/SendableRequest.java 2006-08-05
20:31:16 UTC (rev 9914)
@@ -1,25 +0,0 @@
-package freenet.client.async;
-
-import freenet.node.Node;
-import freenet.support.RandomGrabArrayItem;
-
-/**
- * A low-level request which can be sent immediately. These are registered
- * on the ClientRequestScheduler.
- */
-public interface SendableRequest extends RandomGrabArrayItem {
-
- public short getPriorityClass();
-
- public int getRetryCount();
-
- /** ONLY called by RequestStarter */
- public void send(Node node);
-
- /** Get client context object */
- public Object getClient();
-
- /** Get the ClientRequest */
- public ClientRequester getClientRequest();
-
-}
Deleted: trunk/freenet/src/freenet/client/async/SimpleSendableInsert.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleSendableInsert.java
2006-08-05 20:02:30 UTC (rev 9913)
+++ trunk/freenet/src/freenet/client/async/SimpleSendableInsert.java
2006-08-05 20:31:16 UTC (rev 9914)
@@ -1,72 +0,0 @@
-package freenet.client.async;
-
-import freenet.keys.ClientKeyBlock;
-import freenet.keys.KeyBlock;
-import freenet.node.LowLevelPutException;
-import freenet.node.Node;
-import freenet.support.Logger;
-
-/**
- * Simple SendableInsert implementation. No feedback, no retries, just insert
the
- * block. Not designed for use by the client layer. Used by the node layer for
the
- * 1 in every 200 successful requests which starts an insert.
- */
-public class SimpleSendableInsert implements SendableInsert {
-
- public final Node node;
- public final KeyBlock block;
- public final short prioClass;
- private boolean finished;
-
- public SimpleSendableInsert(Node node, KeyBlock block, short prioClass)
{
- this.node = node;
- this.block = block;
- this.prioClass = prioClass;
- }
-
- public void onSuccess() {
- // Yay!
- Logger.minor(this, "Finished insert of "+block);
- }
-
- public void onFailure(LowLevelPutException e) {
- Logger.minor(this, "Failed insert of "+block+": "+e);
- }
-
- public short getPriorityClass() {
- return prioClass;
- }
-
- public int getRetryCount() {
- // No retries.
- return 0;
- }
-
- public void send(Node node) {
- try {
- Logger.minor(this, "Starting request: "+this);
- node.realPut(block, false);
- } catch (LowLevelPutException e) {
- onFailure(e);
- Logger.minor(this, "Request failed: "+this+" for "+e);
- return;
- } finally {
- finished = true;
- }
- Logger.minor(this, "Request succeeded: "+this);
- onSuccess();
- }
-
- public Object getClient() {
- return node;
- }
-
- public ClientRequester getClientRequest() {
- return null;
- }
-
- public boolean isFinished() {
- return finished;
- }
-
-}
Modified: trunk/freenet/src/freenet/client/async/SingleBlockInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleBlockInserter.java
2006-08-05 20:02:30 UTC (rev 9913)
+++ trunk/freenet/src/freenet/client/async/SingleBlockInserter.java
2006-08-05 20:31:16 UTC (rev 9914)
@@ -16,6 +16,7 @@
import freenet.keys.SSKEncodeException;
import freenet.node.LowLevelPutException;
import freenet.node.Node;
+import freenet.node.SendableInsert;
import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
import freenet.support.io.Bucket;
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-08-05 20:02:30 UTC (rev
9913)
+++ trunk/freenet/src/freenet/node/Node.java 2006-08-05 20:31:16 UTC (rev
9914)
@@ -48,7 +48,6 @@
import freenet.client.async.ClientRequestScheduler;
import freenet.client.async.HealingQueue;
import freenet.client.async.SimpleHealingQueue;
-import freenet.client.async.SimpleSendableInsert;
import freenet.client.async.USKManager;
import freenet.client.events.SimpleEventProducer;
import freenet.clients.http.BookmarkManager;
Copied: trunk/freenet/src/freenet/node/RequestScheduler.java (from rev 9906,
trunk/freenet/src/freenet/client/async/RequestScheduler.java)
===================================================================
--- trunk/freenet/src/freenet/client/async/RequestScheduler.java
2006-08-05 16:00:37 UTC (rev 9906)
+++ trunk/freenet/src/freenet/node/RequestScheduler.java 2006-08-05
20:31:16 UTC (rev 9914)
@@ -0,0 +1,7 @@
+package freenet.node;
+
+public interface RequestScheduler {
+
+ public SendableRequest removeFirst();
+
+}
Modified: trunk/freenet/src/freenet/node/RequestStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestStarter.java 2006-08-05 20:02:30 UTC
(rev 9913)
+++ trunk/freenet/src/freenet/node/RequestStarter.java 2006-08-05 20:31:16 UTC
(rev 9914)
@@ -1,7 +1,5 @@
package freenet.node;
-import freenet.client.async.RequestScheduler;
-import freenet.client.async.SendableRequest;
import freenet.support.Logger;
import freenet.support.TokenBucket;
import freenet.support.math.RunningAverage;
Copied: trunk/freenet/src/freenet/node/SendableGet.java (from rev 9906,
trunk/freenet/src/freenet/client/async/SendableGet.java)
===================================================================
--- trunk/freenet/src/freenet/client/async/SendableGet.java 2006-08-05
16:00:37 UTC (rev 9906)
+++ trunk/freenet/src/freenet/node/SendableGet.java 2006-08-05 20:31:16 UTC
(rev 9914)
@@ -0,0 +1,24 @@
+package freenet.node;
+
+import freenet.keys.ClientKey;
+import freenet.keys.ClientKeyBlock;
+
+/**
+ * A low-level key fetch which can be sent immediately. @see SendableRequest
+ */
+public interface SendableGet extends SendableRequest {
+
+ public ClientKey getKey();
+
+ /** Called when/if the low-level request succeeds. */
+ public void onSuccess(ClientKeyBlock block, boolean fromStore);
+
+ /** Called when/if the low-level request fails. */
+ public void onFailure(LowLevelGetException e);
+
+ /** Should the request ignore the datastore? */
+ public boolean ignoreStore();
+
+ /** If true, don't cache local requests */
+ public boolean dontCache();
+}
Copied: trunk/freenet/src/freenet/node/SendableInsert.java (from rev 9906,
trunk/freenet/src/freenet/client/async/SendableInsert.java)
===================================================================
--- trunk/freenet/src/freenet/client/async/SendableInsert.java 2006-08-05
16:00:37 UTC (rev 9906)
+++ trunk/freenet/src/freenet/node/SendableInsert.java 2006-08-05 20:31:16 UTC
(rev 9914)
@@ -0,0 +1,19 @@
+package freenet.node;
+
+import freenet.keys.ClientKeyBlock;
+
+/**
+ * Callback interface for a low level insert, which is immediately sendable.
These
+ * should be registered on the ClientRequestScheduler when we want to send
them. It will
+ * then, when it is time to send, create a thread, send the request, and call
the
+ * callback below.
+ */
+public interface SendableInsert extends SendableRequest {
+
+ /** Called when we successfully insert the data */
+ public void onSuccess();
+
+ /** Called when we don't! */
+ public void onFailure(LowLevelPutException e);
+
+}
Copied: trunk/freenet/src/freenet/node/SendableRequest.java (from rev 9906,
trunk/freenet/src/freenet/client/async/SendableRequest.java)
===================================================================
--- trunk/freenet/src/freenet/client/async/SendableRequest.java 2006-08-05
16:00:37 UTC (rev 9906)
+++ trunk/freenet/src/freenet/node/SendableRequest.java 2006-08-05 20:31:16 UTC
(rev 9914)
@@ -0,0 +1,25 @@
+package freenet.node;
+
+import freenet.client.async.ClientRequester;
+import freenet.support.RandomGrabArrayItem;
+
+/**
+ * A low-level request which can be sent immediately. These are registered
+ * on the ClientRequestScheduler.
+ */
+public interface SendableRequest extends RandomGrabArrayItem {
+
+ public short getPriorityClass();
+
+ public int getRetryCount();
+
+ /** ONLY called by RequestStarter */
+ public void send(Node node);
+
+ /** Get client context object */
+ public Object getClient();
+
+ /** Get the ClientRequest */
+ public ClientRequester getClientRequest();
+
+}
Copied: trunk/freenet/src/freenet/node/SimpleSendableInsert.java (from rev
9906, trunk/freenet/src/freenet/client/async/SimpleSendableInsert.java)
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleSendableInsert.java
2006-08-05 16:00:37 UTC (rev 9906)
+++ trunk/freenet/src/freenet/node/SimpleSendableInsert.java 2006-08-05
20:31:16 UTC (rev 9914)
@@ -0,0 +1,71 @@
+package freenet.node;
+
+import freenet.client.async.ClientRequester;
+import freenet.keys.ClientKeyBlock;
+import freenet.keys.KeyBlock;
+import freenet.support.Logger;
+
+/**
+ * Simple SendableInsert implementation. No feedback, no retries, just insert
the
+ * block. Not designed for use by the client layer. Used by the node layer for
the
+ * 1 in every 200 successful requests which starts an insert.
+ */
+public class SimpleSendableInsert implements SendableInsert {
+
+ public final Node node;
+ public final KeyBlock block;
+ public final short prioClass;
+ private boolean finished;
+
+ public SimpleSendableInsert(Node node, KeyBlock block, short prioClass)
{
+ this.node = node;
+ this.block = block;
+ this.prioClass = prioClass;
+ }
+
+ public void onSuccess() {
+ // Yay!
+ Logger.minor(this, "Finished insert of "+block);
+ }
+
+ public void onFailure(LowLevelPutException e) {
+ Logger.minor(this, "Failed insert of "+block+": "+e);
+ }
+
+ public short getPriorityClass() {
+ return prioClass;
+ }
+
+ public int getRetryCount() {
+ // No retries.
+ return 0;
+ }
+
+ public void send(Node node) {
+ try {
+ Logger.minor(this, "Starting request: "+this);
+ node.realPut(block, false);
+ } catch (LowLevelPutException e) {
+ onFailure(e);
+ Logger.minor(this, "Request failed: "+this+" for "+e);
+ return;
+ } finally {
+ finished = true;
+ }
+ Logger.minor(this, "Request succeeded: "+this);
+ onSuccess();
+ }
+
+ public Object getClient() {
+ return node;
+ }
+
+ public ClientRequester getClientRequest() {
+ return null;
+ }
+
+ public boolean isFinished() {
+ return finished;
+ }
+
+}