Author: toad
Date: 2008-05-20 22:28:33 +0000 (Tue, 20 May 2008)
New Revision: 19986
Modified:
branches/db4o/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
branches/db4o/freenet/src/freenet/client/async/OfferedKeysList.java
branches/db4o/freenet/src/freenet/client/async/SimpleHealingQueue.java
branches/db4o/freenet/src/freenet/client/async/USKManager.java
branches/db4o/freenet/src/freenet/clients/http/FProxyToadlet.java
branches/db4o/freenet/src/freenet/clients/http/bookmark/BookmarkManager.java
branches/db4o/freenet/src/freenet/node/Node.java
branches/db4o/freenet/src/freenet/node/NodeARKInserter.java
branches/db4o/freenet/src/freenet/node/NodeClientCore.java
branches/db4o/freenet/src/freenet/node/PeerNode.java
branches/db4o/freenet/src/freenet/node/RequestClient.java
branches/db4o/freenet/src/freenet/node/SimpleSendableInsert.java
branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java
branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
branches/db4o/freenet/src/freenet/node/fcp/SubscribeUSK.java
branches/db4o/freenet/src/freenet/node/updater/NodeUpdater.java
branches/db4o/freenet/src/freenet/node/updater/RevocationChecker.java
branches/db4o/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
trunk/plugins/KeyExplorer/KeyExplorer.java
trunk/plugins/XMLSpider/XMLSpider.java
Log:
RequestClient: add persistent() method.
Also make a non-persistent RequestClient on Node.
Modified:
branches/db4o/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -265,4 +265,8 @@
}
}
+ public boolean persistent() {
+ return false;
+ }
+
}
Modified: branches/db4o/freenet/src/freenet/client/async/OfferedKeysList.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/OfferedKeysList.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/client/async/OfferedKeysList.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -176,4 +176,8 @@
return (Key) token;
}
+ public boolean persistent() {
+ return false;
+ }
+
}
Modified: branches/db4o/freenet/src/freenet/client/async/SimpleHealingQueue.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleHealingQueue.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleHealingQueue.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -23,7 +23,10 @@
final HashMap runningInserters;
public SimpleHealingQueue(ClientRequestScheduler scheduler,
InsertContext context, short prio, int maxRunning) {
- super(prio, scheduler, null, new RequestClient() { });
+ super(prio, scheduler, null, new RequestClient() {
+ public boolean persistent() {
+ return false;
+ } });
this.ctx = context;
this.runningInserters = new HashMap();
this.maxRunning = maxRunning;
Modified: branches/db4o/freenet/src/freenet/client/async/USKManager.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/USKManager.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/client/async/USKManager.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -316,4 +316,8 @@
}
}
}
+
+ public boolean persistent() {
+ return false;
+ }
}
Modified: branches/db4o/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
--- branches/db4o/freenet/src/freenet/clients/http/FProxyToadlet.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/clients/http/FProxyToadlet.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -423,7 +423,10 @@
try {
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "FProxy fetching "+key+"
("+maxSize+ ')');
- FetchResult result = fetch(key, maxSize, new
RequestClient() { });
+ FetchResult result = fetch(key, maxSize, new
RequestClient() {
+ public boolean persistent() {
+ return false;
+ } });
// Now, is it safe?
Modified:
branches/db4o/freenet/src/freenet/clients/http/bookmark/BookmarkManager.java
===================================================================
---
branches/db4o/freenet/src/freenet/clients/http/bookmark/BookmarkManager.java
2008-05-20 22:14:49 UTC (rev 19985)
+++
branches/db4o/freenet/src/freenet/clients/http/bookmark/BookmarkManager.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -367,4 +367,8 @@
return sfs;
}
+
+ public boolean persistent() {
+ return false;
+ }
}
Modified: branches/db4o/freenet/src/freenet/node/Node.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/Node.java 2008-05-20 22:14:49 UTC
(rev 19985)
+++ branches/db4o/freenet/src/freenet/node/Node.java 2008-05-20 22:28:33 UTC
(rev 19986)
@@ -127,7 +127,7 @@
/**
* @author amphibian
*/
-public class Node implements TimeSkewDetectorCallback, GetPubkey,
RequestClient {
+public class Node implements TimeSkewDetectorCallback, GetPubkey {
private static boolean logMINOR;
@@ -3334,6 +3334,12 @@
}
private SimpleUserAlert alertMTUTooSmall;
+
+ public final RequestClient nonPersistentClient = new RequestClient() {
+ public boolean persistent() {
+ return false;
+ }
+ };
public void onTooLowMTU(int minAdvertisedMTU, int minAcceptableMTU) {
if(alertMTUTooSmall == null) {
Modified: branches/db4o/freenet/src/freenet/node/NodeARKInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeARKInserter.java 2008-05-20
22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/NodeARKInserter.java 2008-05-20
22:28:33 UTC (rev 19986)
@@ -261,4 +261,8 @@
// Ignore, we don't care
}
+ public boolean persistent() {
+ return false;
+ }
+
}
\ No newline at end of file
Modified: branches/db4o/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeClientCore.java 2008-05-20
22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/NodeClientCore.java 2008-05-20
22:28:33 UTC (rev 19986)
@@ -67,7 +67,7 @@
/**
* The connection between the node and the client layer.
*/
-public class NodeClientCore implements Persistable, RequestClient {
+public class NodeClientCore implements Persistable {
private static boolean logMINOR;
public final USKManager uskManager;
Modified: branches/db4o/freenet/src/freenet/node/PeerNode.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/PeerNode.java 2008-05-20
22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/PeerNode.java 2008-05-20
22:28:33 UTC (rev 19986)
@@ -1988,7 +1988,7 @@
}
if(arkFetcher == null) {
Logger.minor(this, "Starting ARK fetcher for "
+ this + " : " + myARK);
- arkFetcher =
node.clientCore.uskManager.subscribeContent(myARK, this, true,
node.arkFetcherContext, RequestStarter.IMMEDIATE_SPLITFILE_PRIORITY_CLASS,
node);
+ arkFetcher =
node.clientCore.uskManager.subscribeContent(myARK, this, true,
node.arkFetcherContext, RequestStarter.IMMEDIATE_SPLITFILE_PRIORITY_CLASS,
node.nonPersistentClient);
}
}
}
Modified: branches/db4o/freenet/src/freenet/node/RequestClient.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/RequestClient.java 2008-05-20
22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/RequestClient.java 2008-05-20
22:28:33 UTC (rev 19986)
@@ -10,5 +10,10 @@
* @author toad
*/
public interface RequestClient {
+
+ /**
+ * Is this request persistent? **Must not change!**
+ */
+ public boolean persistent();
}
Modified: branches/db4o/freenet/src/freenet/node/SimpleSendableInsert.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/SimpleSendableInsert.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/SimpleSendableInsert.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -26,7 +26,7 @@
public SimpleSendableInsert(NodeClientCore core, KeyBlock block, short
prioClass) {
this.block = block;
this.prioClass = prioClass;
- this.client = core;
+ this.client = core.node.nonPersistentClient;
if(block instanceof CHKBlock)
scheduler = core.requestStarters.chkPutScheduler;
else if(block instanceof SSKBlock)
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-05-20
22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-05-20
22:28:33 UTC (rev 19986)
@@ -124,7 +124,7 @@
ret.free();
throw e;
}
- getter = new ClientGetter(this,
client.core.requestStarters.chkFetchScheduler,
client.core.requestStarters.sskFetchScheduler, uri, fctx, priorityClass,
client.lowLevelClient, returnBucket, null);
+ getter = new ClientGetter(this,
client.core.requestStarters.chkFetchScheduler,
client.core.requestStarters.sskFetchScheduler, uri, fctx, priorityClass,
client.lowLevelClientPersistent, returnBucket, null);
if(persistenceType != PERSIST_CONNECTION) {
FCPMessage msg = persistentTagMessage();
client.queueClientRequestMessage(msg, 0);
@@ -196,7 +196,7 @@
}
getter = new ClientGetter(this,
client.core.requestStarters.chkFetchScheduler,
client.core.requestStarters.sskFetchScheduler, uri, fctx, priorityClass,
- client.lowLevelClient, binaryBlob ? new
NullBucket() : returnBucket,
+ client.lowLevelClientPersistent,
binaryBlob ? new NullBucket() : returnBucket,
binaryBlob ?
returnBucket : null);
if(persistenceType != PERSIST_CONNECTION) {
FCPMessage msg = persistentTagMessage();
@@ -299,7 +299,8 @@
getter = new ClientGetter(this,
client.core.requestStarters.chkFetchScheduler,
client.core.requestStarters.sskFetchScheduler,
uri,
- fctx, priorityClass, client.lowLevelClient,
+ fctx, priorityClass,
+ persistenceType == PERSIST_CONNECTION ?
client.lowLevelClientTransient : client.lowLevelClientPersistent,
binaryBlob ? new NullBucket() : returnBucket,
binaryBlob ? returnBucket :
null);
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java 2008-05-20
22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java 2008-05-20
22:28:33 UTC (rev 19986)
@@ -147,7 +147,9 @@
putter = new ClientPutter(this, data, uri, cm,
ctx,
client.core.requestStarters.chkPutScheduler,
client.core.requestStarters.sskPutScheduler, priorityClass,
- getCHKOnly, isMetadata, client.lowLevelClient,
null, targetFilename, binaryBlob);
+ getCHKOnly, isMetadata,
+ persistenceType == PERSIST_CONNECTION ?
client.lowLevelClientTransient : client.lowLevelClientPersistent,
+ null, targetFilename, binaryBlob);
if(persistenceType != PERSIST_CONNECTION) {
FCPMessage msg = persistentTagMessage();
client.queueClientRequestMessage(msg, 0);
@@ -257,7 +259,9 @@
if(logMINOR) Logger.minor(this, "data = "+data+", uploadFrom =
"+ClientPutMessage.uploadFromString(uploadFrom));
putter = new ClientPutter(this, data, uri, cm,
ctx,
client.core.requestStarters.chkPutScheduler,
client.core.requestStarters.sskPutScheduler, priorityClass,
- getCHKOnly, isMetadata, client.lowLevelClient,
null, targetFilename, binaryBlob);
+ getCHKOnly, isMetadata,
+ persistenceType == PERSIST_CONNECTION ?
client.lowLevelClientTransient : client.lowLevelClientPersistent,
+ null, targetFilename, binaryBlob);
if(persistenceType != PERSIST_CONNECTION) {
FCPMessage msg = persistentTagMessage();
client.queueClientRequestMessage(msg, 0);
@@ -349,8 +353,9 @@
SimpleFieldSet oldProgress = fs.subset("progress");
if(finished) oldProgress = null; // Not useful any more
putter = new ClientPutter(this, data, uri, cm, ctx,
client.core.requestStarters.chkPutScheduler,
- client.core.requestStarters.sskPutScheduler,
priorityClass, getCHKOnly, isMetadata,
- client.lowLevelClient, oldProgress,
targetFilename, binaryBlob);
+ client.core.requestStarters.sskPutScheduler,
priorityClass, getCHKOnly, isMetadata,
+ persistenceType == PERSIST_CONNECTION ?
client.lowLevelClientTransient : client.lowLevelClientPersistent,
+ oldProgress, targetFilename, binaryBlob);
if(persistenceType != PERSIST_CONNECTION) {
FCPMessage msg = persistentTagMessage();
client.queueClientRequestMessage(msg, 0);
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -130,7 +130,9 @@
SimpleManifestPutter p;
try {
p = new SimpleManifestPutter(this,
client.core.requestStarters.chkPutScheduler,
client.core.requestStarters.sskPutScheduler,
- manifestElements, priorityClass, uri,
defaultName, ctx, getCHKOnly, client.lowLevelClient, earlyEncode);
+ manifestElements, priorityClass, uri,
defaultName, ctx, getCHKOnly,
+ persistenceType == PERSIST_CONNECTION ?
client.lowLevelClientTransient : client.lowLevelClientPersistent,
+ earlyEncode);
} catch (InsertException e) {
onFailure(e, null);
p = null;
@@ -209,7 +211,9 @@
try {
if(!finished)
p = new SimpleManifestPutter(this,
client.core.requestStarters.chkPutScheduler,
client.core.requestStarters.sskPutScheduler,
- manifestElements,
priorityClass, uri, defaultName, ctx, getCHKOnly, client, earlyEncode);
+ manifestElements,
priorityClass, uri, defaultName, ctx, getCHKOnly,
+ persistenceType ==
PERSIST_CONNECTION ? client.lowLevelClientTransient :
client.lowLevelClientPersistent,
+ earlyEncode);
} catch (InsertException e) {
onFailure(e, null);
p = null;
Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java 2008-05-20
22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java 2008-05-20
22:28:33 UTC (rev 19986)
@@ -17,7 +17,7 @@
* An FCP client.
* Identified by its Name which is sent on connection.
*/
-public class FCPClient implements RequestClient {
+public class FCPClient {
public FCPClient(String name2, FCPServer server, FCPConnectionHandler
handler, boolean isGlobalQueue, RequestCompletionCallback cb) {
this.name = name2;
@@ -35,7 +35,16 @@
clientsWatching = new LinkedList();
watchGlobalVerbosityMask = Integer.MAX_VALUE;
toStart = new LinkedList();
- lowLevelClient = this;
+ lowLevelClientPersistent = new RequestClient() {
+ public boolean persistent() {
+ return true;
+ }
+ };
+ lowLevelClientTransient = new RequestClient() {
+ public boolean persistent() {
+ return false;
+ }
+ };
completionCallback = cb;
}
@@ -66,8 +75,8 @@
// We obviously can't synchronize on it when it hasn't been constructed
yet...
final LinkedList clientsWatching;
private final LinkedList toStart;
- /** Low-level client object, for freenet.client.async. Normally ==
this. */
- final RequestClient lowLevelClient;
+ final RequestClient lowLevelClientPersistent;
+ final RequestClient lowLevelClientTransient;
private RequestCompletionCallback completionCallback;
public synchronized FCPConnectionHandler getConnection() {
Modified: branches/db4o/freenet/src/freenet/node/fcp/SubscribeUSK.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/SubscribeUSK.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/fcp/SubscribeUSK.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -21,7 +21,7 @@
this.dontPoll = message.dontPoll;
this.identifier = message.identifier;
this.core = core;
- core.uskManager.subscribe(message.key, this, !message.dontPoll,
handler.getClient().lowLevelClient);
+ core.uskManager.subscribe(message.key, this, !message.dontPoll,
handler.getClient().lowLevelClientTransient);
}
public void onFoundEdition(long l, USK key) {
Modified: branches/db4o/freenet/src/freenet/node/updater/NodeUpdater.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/updater/NodeUpdater.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/updater/NodeUpdater.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -351,4 +351,8 @@
public short getPollingPriorityProgress() {
return RequestStarter.IMMEDIATE_SPLITFILE_PRIORITY_CLASS;
}
+
+ public boolean persistent() {
+ return false;
+ }
}
Modified: branches/db4o/freenet/src/freenet/node/updater/RevocationChecker.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/updater/RevocationChecker.java
2008-05-20 22:14:49 UTC (rev 19985)
+++ branches/db4o/freenet/src/freenet/node/updater/RevocationChecker.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -254,4 +254,8 @@
return null;
}
+ public boolean persistent() {
+ return false;
+ }
+
}
Modified:
branches/db4o/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
===================================================================
---
branches/db4o/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
2008-05-20 22:14:49 UTC (rev 19985)
+++
branches/db4o/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
2008-05-20 22:28:33 UTC (rev 19986)
@@ -1237,4 +1237,8 @@
}
return !gotError;
}
+
+ public boolean persistent() {
+ return false;
+ }
}
Modified: trunk/plugins/KeyExplorer/KeyExplorer.java
===================================================================
--- trunk/plugins/KeyExplorer/KeyExplorer.java 2008-05-20 22:14:49 UTC (rev
19985)
+++ trunk/plugins/KeyExplorer/KeyExplorer.java 2008-05-20 22:28:33 UTC (rev
19986)
@@ -137,7 +137,10 @@
throw new MalformedURLException("Not a supported
freenet uri: "+uri);
}
VerySimpleGetter vsg = new VerySimpleGetter((short) 1,
m_pr.getNode().clientCore.requestStarters.chkFetchScheduler, m_pr
-
.getNode().clientCore.requestStarters.sskFetchScheduler, uri, new
RequestClient() {});
+
.getNode().clientCore.requestStarters.sskFetchScheduler, uri, new
RequestClient() {
+ public boolean persistent() {
+ return false;
+ }});
VerySimpleGet vs = new VerySimpleGet(ck, 3,
m_pr.getHLSimpleClient().getFetchContext(), vsg);
vs.schedule();
return new GetResult(vs.waitForCompletion(), vs.isMetadata());
Modified: trunk/plugins/XMLSpider/XMLSpider.java
===================================================================
--- trunk/plugins/XMLSpider/XMLSpider.java 2008-05-20 22:14:49 UTC (rev
19985)
+++ trunk/plugins/XMLSpider/XMLSpider.java 2008-05-20 22:28:33 UTC (rev
19986)
@@ -1344,4 +1344,8 @@
return PRIORITY_CLASS;
}
+ public boolean persistent() {
+ return false;
+ }
+
}