Author: saces
Date: 2009-04-14 19:31:46 +0000 (Tue, 14 Apr 2009)
New Revision: 26801

Added:
   trunk/freenet/src/freenet/client/async/PlainManifestPutter.java
Log:
plain/dumb manifest putter: every file item is a redirect (no containers at all)

Added: trunk/freenet/src/freenet/client/async/PlainManifestPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/PlainManifestPutter.java             
                (rev 0)
+++ trunk/freenet/src/freenet/client/async/PlainManifestPutter.java     
2009-04-14 19:31:46 UTC (rev 26801)
@@ -0,0 +1,48 @@
+package freenet.client.async;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import freenet.client.InsertContext;
+import freenet.client.async.ClientCallback;
+import freenet.client.async.ManifestElement;
+import freenet.client.async.SimpleManifestPutter;
+import freenet.keys.FreenetURI;
+import freenet.node.RequestClient;
+import freenet.support.Logger;
+
+/**
+ * plain/dumb manifest putter: every file item is a redirect (no containers at 
all)
+ */
+
+public class PlainManifestPutter extends SimpleManifestPutter {
+
+       public PlainManifestPutter(ClientCallback clientCallback, 
HashMap<String, Object> manifestElements, short prioClass, FreenetURI target, 
String defaultName, InsertContext ctx, boolean getCHKOnly,
+                       RequestClient clientContext, boolean earlyEncode) {
+               super(clientCallback, manifestElements, prioClass, target, 
defaultName, ctx, getCHKOnly, clientContext, earlyEncode);
+       }
+
+       @Override
+       protected void makePutHandlers(HashMap<String,Object> manifestElements, 
HashMap<String, Object> putHandlersByName) {
+               makePutHandlers(manifestElements, putHandlersByName, "/");
+       }
+               
+       private void makePutHandlers(HashMap<String,Object> manifestElements, 
HashMap<String,Object> putHandlersByName, String prefix) {
+               Iterator<String> it = manifestElements.keySet().iterator();
+               while(it.hasNext()) {
+                       String name = it.next();
+                       Object o = manifestElements.get(name);
+                       if(o instanceof HashMap) {
+                               HashMap<String,Object> subMap = new 
HashMap<String,Object>();
+                               putHandlersByName.put(name, subMap);
+                               makePutHandlers((HashMap<String,Object>)o, 
subMap, prefix+name+ '/');
+                               if(Logger.shouldLog(Logger.DEBUG, this))
+                                       Logger.debug(this, "Sub map for 
"+name+" : "+subMap.size()+" elements from "+((HashMap)o).size());
+                       } else {
+                               ManifestElement element = (ManifestElement) o;
+                               addRedirect(name, element, putHandlersByName);
+                       }
+               }
+       }
+}
+


Property changes on: 
trunk/freenet/src/freenet/client/async/PlainManifestPutter.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to