Author: toad
Date: 2009-02-19 00:42:41 +0000 (Thu, 19 Feb 2009)
New Revision: 25715
Modified:
branches/db4o/freenet/src/freenet/client/async/USKFetcherTag.java
branches/db4o/freenet/src/freenet/client/async/USKInserter.java
branches/db4o/freenet/src/freenet/client/async/USKManagerPersistent.java
Log:
USK fetching: Activation fixes, need some minor API changes.
USKFetcherTag: remove self when appropriate.
Remove the USK with the USKFetcherTag, activate it first.
USKFetcherTag: remove duplicate method removeFromDatabase.
Modified: branches/db4o/freenet/src/freenet/client/async/USKFetcherTag.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/USKFetcherTag.java
2009-02-19 00:36:53 UTC (rev 25714)
+++ branches/db4o/freenet/src/freenet/client/async/USKFetcherTag.java
2009-02-19 00:42:41 UTC (rev 25715)
@@ -89,8 +89,10 @@
};
- public void start(USKManager manager, ClientContext context) {
+ public void start(USKManager manager, ClientContext context,
ObjectContainer container) {
USK usk = origUSK;
+ if(persistent)
+ container.activate(origUSK, 5);
if(usk.suggestedEdition < edition)
usk = usk.copy(edition);
fetcher = manager.getFetcher(usk, ctx, new
USKFetcherWrapper(usk, priority, client), keepLastData);
@@ -123,7 +125,7 @@
}
public void schedule(ObjectContainer container, ClientContext context) {
- start(context.uskManager, context);
+ start(context.uskManager, context, container);
}
public void onCancelled(ObjectContainer container, ClientContext
context) {
@@ -136,7 +138,7 @@
public void run(ObjectContainer container,
ClientContext context) {
container.activate(callback, 1);
callback.onCancelled(container,
context);
- container.store(this);
+ removeFrom(container, context);
container.deactivate(callback, 1);
}
@@ -156,8 +158,8 @@
public void run(ObjectContainer container,
ClientContext context) {
container.activate(callback, 1);
callback.onFailure(container, context);
- container.store(this);
container.deactivate(callback, 1);
+ removeFrom(container, context);
}
}, NativeThread.HIGH_PRIORITY, false);
@@ -188,8 +190,8 @@
public void run(ObjectContainer container,
ClientContext context) {
container.activate(callback, 1);
callback.onFoundEdition(l, key,
container, context, metadata, codec, data);
- container.store(this);
container.deactivate(callback, 1);
+ removeFrom(container, context);
}
}, NativeThread.HIGH_PRIORITY, false);
@@ -198,16 +200,18 @@
}
}
- public void removeFromDatabase(ObjectContainer container) {
- container.delete(this);
- }
-
public final boolean isFinished() {
return finished;
}
public void removeFrom(ObjectContainer container, ClientContext
context) {
+ container.activate(origUSK, 5);
+ origUSK.removeFrom(container);
container.delete(this);
}
+ public boolean objectCanDeactivate(ObjectContainer container) {
+ return false;
+ }
+
}
Modified: branches/db4o/freenet/src/freenet/client/async/USKInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/USKInserter.java
2009-02-19 00:36:53 UTC (rev 25714)
+++ branches/db4o/freenet/src/freenet/client/async/USKInserter.java
2009-02-19 00:42:41 UTC (rev 25715)
@@ -104,7 +104,7 @@
}
if(!alreadyInserted) {
if(parent.persistent())
- fetcher.removeFromDatabase(container);
+ fetcher.removeFrom(container, context);
fetcher = null;
}
}
@@ -231,7 +231,7 @@
public synchronized void onCancelled(ObjectContainer container,
ClientContext context) {
if(fetcher != null) {
if(parent.persistent())
- fetcher.removeFromDatabase(container);
+ fetcher.removeFrom(container, context);
fetcher = null;
}
if(finished) return;
Modified:
branches/db4o/freenet/src/freenet/client/async/USKManagerPersistent.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/USKManagerPersistent.java
2009-02-19 00:36:53 UTC (rev 25714)
+++ branches/db4o/freenet/src/freenet/client/async/USKManagerPersistent.java
2009-02-19 00:42:41 UTC (rev 25715)
@@ -20,7 +20,7 @@
}
});
while(set.hasNext())
- set.next().start(manager, context);
+ set.next().start(manager, context, container);
}
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs