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

Reply via email to