Author: toad
Date: 2008-06-20 18:06:45 +0000 (Fri, 20 Jun 2008)
New Revision: 20533
Modified:
branches/db4o/freenet/src/freenet/client/FetchWaiter.java
branches/db4o/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
branches/db4o/freenet/src/freenet/client/PutWaiter.java
branches/db4o/freenet/src/freenet/client/async/ClientCallback.java
branches/db4o/freenet/src/freenet/client/async/ClientPutter.java
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
branches/db4o/freenet/src/freenet/node/NodeARKInserter.java
branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.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
Log:
Store the progress message.
Modified: branches/db4o/freenet/src/freenet/client/FetchWaiter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/FetchWaiter.java 2008-06-20
17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/client/FetchWaiter.java 2008-06-20
18:06:45 UTC (rev 20533)
@@ -59,7 +59,7 @@
// Ignore
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state, ObjectContainer
container) {
// Ignore
}
}
Modified:
branches/db4o/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
2008-06-20 17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
2008-06-20 18:06:45 UTC (rev 20533)
@@ -215,7 +215,7 @@
// Impossible
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state, ObjectContainer
container) {
// Impossible
}
Modified: branches/db4o/freenet/src/freenet/client/PutWaiter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/PutWaiter.java 2008-06-20
17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/client/PutWaiter.java 2008-06-20
18:06:45 UTC (rev 20533)
@@ -65,7 +65,7 @@
// Ignore
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state, ObjectContainer
container) {
// Ignore
}
Modified: branches/db4o/freenet/src/freenet/client/async/ClientCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientCallback.java
2008-06-20 17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/client/async/ClientCallback.java
2008-06-20 18:06:45 UTC (rev 20533)
@@ -32,5 +32,5 @@
public void onMajorProgress();
/** Called when the inserted data is fetchable (don't rely on this) */
- public void onFetchable(BaseClientPutter state);
+ public void onFetchable(BaseClientPutter state, ObjectContainer
container);
}
Modified: branches/db4o/freenet/src/freenet/client/async/ClientPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientPutter.java
2008-06-20 17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/client/async/ClientPutter.java
2008-06-20 18:06:45 UTC (rev 20533)
@@ -258,7 +258,7 @@
}
public void onFetchable(ClientPutState state, ObjectContainer
container) {
- client.onFetchable(this);
+ client.onFetchable(this, container);
}
public boolean canRestart() {
Modified:
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
2008-06-20 17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
2008-06-20 18:06:45 UTC (rev 20533)
@@ -723,7 +723,7 @@
if(!metadataPuttersUnfetchable.isEmpty()) return;
fetchable = true;
}
- cb.onFetchable(this);
+ cb.onFetchable(this, container);
}
public void onFetchable(ClientPutState state, ObjectContainer
container) {
@@ -735,7 +735,7 @@
if(!putHandlersWaitingForFetchable.isEmpty()) return;
fetchable = true;
}
- cb.onFetchable(this);
+ cb.onFetchable(this, container);
}
public void onTransition(ClientGetState oldState, ClientGetState
newState, ObjectContainer container) {
Modified: branches/db4o/freenet/src/freenet/node/NodeARKInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeARKInserter.java 2008-06-20
17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/node/NodeARKInserter.java 2008-06-20
18:06:45 UTC (rev 20533)
@@ -259,7 +259,7 @@
// Ignore
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state, ObjectContainer
container) {
// Ignore, we don't care
}
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-06-20
17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-06-20
18:06:45 UTC (rev 20533)
@@ -751,7 +751,7 @@
}
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state, ObjectContainer
container) {
// Ignore, we don't insert
}
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
2008-06-20 17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
2008-06-20 18:06:45 UTC (rev 20533)
@@ -8,6 +8,7 @@
import freenet.client.async.BaseClientPutter;
import freenet.client.async.ClientCallback;
import freenet.client.async.ClientContext;
+import freenet.client.async.DBJob;
import freenet.client.events.ClientEvent;
import freenet.client.events.ClientEventListener;
import freenet.client.events.FinishedCompressionEvent;
@@ -19,6 +20,7 @@
import freenet.support.Fields;
import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
+import freenet.support.io.NativeThread;
/**
* Base class for ClientPut and ClientPutDir.
@@ -215,24 +217,24 @@
if((verbosity & VERBOSITY_SPLITFILE_PROGRESS) ==
VERBOSITY_SPLITFILE_PROGRESS) {
SimpleProgressMessage progress =
new SimpleProgressMessage(identifier,
global, (SplitfileProgressEvent)ce);
- trySendProgressMessage(progress,
VERBOSITY_SPLITFILE_PROGRESS, null);
+ trySendProgressMessage(progress,
VERBOSITY_SPLITFILE_PROGRESS, null, container, context);
}
} else if(ce instanceof StartedCompressionEvent) {
if((verbosity & VERBOSITY_COMPRESSION_START_END) ==
VERBOSITY_COMPRESSION_START_END) {
StartedCompressionMessage msg =
new
StartedCompressionMessage(identifier, global,
((StartedCompressionEvent)ce).codec);
- trySendProgressMessage(msg,
VERBOSITY_COMPRESSION_START_END, null);
+ trySendProgressMessage(msg,
VERBOSITY_COMPRESSION_START_END, null, container, context);
}
} else if(ce instanceof FinishedCompressionEvent) {
if((verbosity & VERBOSITY_COMPRESSION_START_END) ==
VERBOSITY_COMPRESSION_START_END) {
FinishedCompressionMessage msg =
new
FinishedCompressionMessage(identifier, global, (FinishedCompressionEvent)ce);
- trySendProgressMessage(msg,
VERBOSITY_COMPRESSION_START_END, null);
+ trySendProgressMessage(msg,
VERBOSITY_COMPRESSION_START_END, null, container, context);
}
}
}
- public void onFetchable(BaseClientPutter putter) {
+ public void onFetchable(BaseClientPutter putter, ObjectContainer
container) {
if(finished) return;
if((verbosity & VERBOSITY_PUT_FETCHABLE) ==
VERBOSITY_PUT_FETCHABLE) {
FreenetURI temp;
@@ -241,7 +243,7 @@
}
PutFetchableMessage msg =
new PutFetchableMessage(identifier, global,
temp);
- trySendProgressMessage(msg, VERBOSITY_PUT_FETCHABLE,
null);
+ trySendProgressMessage(msg, VERBOSITY_PUT_FETCHABLE,
null, container, null);
}
}
@@ -277,11 +279,31 @@
client.queueClientRequestMessage(msg, 0);
}
- private void trySendProgressMessage(FCPMessage msg, int verbosity,
FCPConnectionOutputHandler handler) {
+ /**
+ * @param msg
+ * @param verbosity
+ * @param handler
+ * @param container Either container or context is required for a
persistent request.
+ * @param context Can be null if container is not null.
+ */
+ private void trySendProgressMessage(FCPMessage msg, int verbosity,
FCPConnectionOutputHandler handler, ObjectContainer container, ClientContext
context) {
synchronized(this) {
if(persistenceType != PERSIST_CONNECTION)
progressMessage = msg;
}
+ if(persistenceType == PERSIST_FOREVER) {
+ if(container != null) {
+ container.set(this);
+ } else {
+ context.jobRunner.queue(new DBJob() {
+
+ public void run(ObjectContainer
container, ClientContext context) {
+
container.set(ClientPutBase.this);
+ }
+
+ }, NativeThread.NORM_PRIORITY, false);
+ }
+ }
if(handler != null)
handler.queue(msg);
else
Modified: branches/db4o/freenet/src/freenet/node/updater/NodeUpdater.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/updater/NodeUpdater.java
2008-06-20 17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/node/updater/NodeUpdater.java
2008-06-20 18:06:45 UTC (rev 20533)
@@ -309,7 +309,7 @@
return fetchedVersion > currentVersion;
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state, ObjectContainer
container) {
// Ignore, we don't insert
}
Modified: branches/db4o/freenet/src/freenet/node/updater/RevocationChecker.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/updater/RevocationChecker.java
2008-06-20 17:35:38 UTC (rev 20532)
+++ branches/db4o/freenet/src/freenet/node/updater/RevocationChecker.java
2008-06-20 18:06:45 UTC (rev 20533)
@@ -235,7 +235,7 @@
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state, ObjectContainer
container) {
// TODO Auto-generated method stub
}
Modified:
branches/db4o/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
===================================================================
---
branches/db4o/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
2008-06-20 17:35:38 UTC (rev 20532)
+++
branches/db4o/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
2008-06-20 18:06:45 UTC (rev 20533)
@@ -751,7 +751,7 @@
// Ignore, not possible
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state,
ObjectContainer container) {
// Irrelevant
}
@@ -799,7 +799,7 @@
public void onFailure(InsertException e,
BaseClientPutter state, ObjectContainer container) {
Logger.error(this, "Failed to insert revocation
key binary blob: "+e, e);
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state,
ObjectContainer container) {
// Ignore
}
public void onGeneratedURI(FreenetURI uri,
BaseClientPutter state, ObjectContainer container) {
@@ -1120,7 +1120,7 @@
// Ignore, not possible
}
- public void onFetchable(BaseClientPutter state) {
+ public void onFetchable(BaseClientPutter state,
ObjectContainer container) {
// Irrelevant
}