r26801 - trunk/freenet/src/freenet/client/async

[email protected] Tue, 14 Apr 2009 19:31:47 +0000
Newsgroups gmane.network.freenet.cvs
Message-ID <[email protected]>
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