Author: toad
Date: 2008-07-29 18:42:44 +0000 (Tue, 29 Jul 2008)
New Revision: 21489

Modified:
   branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
Log:
/queue/countRequests.html determines the total queued CHKs and shows it on an 
HTML page.
Note that this uses quite a lot of memory!

Modified: branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java    
2008-07-29 17:54:03 UTC (rev 21488)
+++ branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java    
2008-07-29 18:42:44 UTC (rev 21489)
@@ -411,7 +411,7 @@
                boolean countRequests = false;

                if (requestPath.length() > 0) {
-                       if(requestPath.equals("countRequests.txt") || 
requestPath.equals("/countRequests.txt")) {
+                       if(requestPath.equals("countRequests.html") || 
requestPath.equals("/countRequests.html")) {
                                countRequests = true;
                        } else {
                        /* okay, there is something in the path, check it. */
@@ -433,7 +433,6 @@
                        } catch (MalformedURLException mue1) {
                        }
                        }
-                       this.writeTemporaryRedirect(ctx, "Redirected", 
"/queue/");
                }

                class OutputWrapper {
@@ -452,9 +451,21 @@
                        public void run(ObjectContainer container, 
ClientContext context) {
                                HTMLNode pageNode = null;
                                try {
-                                       if(count)
-                                               System.err.println("Total 
queued CHK requests: 
"+core.requestStarters.chkFetchScheduler.countPersistentQueuedRequests(container));
-                                       pageNode = handleGetInner(pageMaker, 
container, context, request, ctx);
+                                       if(count) {
+                                               long queued = 
core.requestStarters.chkFetchScheduler.countPersistentQueuedRequests(container);
+                                               System.err.println("Total 
queued CHK requests: "+queued);
+                                               pageNode = 
pageMaker.getPageNode(L10n.getString("QueueToadlet.title", new String[]{ 
"nodeName" }, new String[]{ core.getMyName() }), ctx);
+                                               HTMLNode contentNode = 
pageMaker.getContentNode(pageNode);
+                                               /* add alert summary box */
+                                               if(ctx.isAllowedFullAccess())
+                                                       
contentNode.addChild(core.alerts.createSummary());
+                                               HTMLNode infobox = 
contentNode.addChild(pageMaker.getInfobox("infobox-information", "Queued 
requests status"));
+                                               HTMLNode infoboxContent = 
pageMaker.getContentNode(infobox);
+                                               infoboxContent.addChild("#", 
"Total queued CHK requests: "+queued);
+                                               return;
+                                       } else {
+                                               pageNode = 
handleGetInner(pageMaker, container, context, request, ctx);
+                                       }
                                } finally {
                                        synchronized(ow) {
                                                ow.done = true;


Reply via email to