Author: toad
Date: 2008-07-04 00:09:37 +0000 (Fri, 04 Jul 2008)
New Revision: 20960

Modified:
   branches/db4o/freenet/src/freenet/clients/http/StatisticsToadlet.java
Log:
Show the number of jobs queued at each priority level on the database executor 
on the stats page in advanced mode.

Modified: branches/db4o/freenet/src/freenet/clients/http/StatisticsToadlet.java
===================================================================
--- branches/db4o/freenet/src/freenet/clients/http/StatisticsToadlet.java       
2008-07-04 00:08:50 UTC (rev 20959)
+++ branches/db4o/freenet/src/freenet/clients/http/StatisticsToadlet.java       
2008-07-04 00:09:37 UTC (rev 20960)
@@ -307,7 +307,12 @@

                        // rejection reasons box
                        drawRejectReasonsBox(nextTableCell, false);
-                       drawRejectReasonsBox(nextTableCell, true);              
        
+                       drawRejectReasonsBox(nextTableCell, true);
+                       
+                       // database thread jobs box
+                       
+                       HTMLNode databaseJobsInfobox = 
nextTableCell.addChild("div", "class", "infobox");
+                       drawDatabaseJobsBox(databaseJobsInfobox);

                        // peer distribution box
                        overviewTableRow = overviewTable.addChild("tr");
@@ -412,6 +417,24 @@
                }
        }

+       private void drawDatabaseJobsBox(HTMLNode node) {
+               node.addChild("div", "class", "infobox-header", 
l10n("databaseJobsByPriority"));
+               HTMLNode threadsInfoboxContent = node.addChild("div", "class", 
"infobox-content");
+               int[] jobsByPriority = 
core.clientDatabaseExecutor.runningJobs();
+               
+               HTMLNode threadsByPriorityTable = 
threadsInfoboxContent.addChild("table", "border", "0");
+               HTMLNode row = threadsByPriorityTable.addChild("tr");
+
+               row.addChild("th", l10n("priority"));
+               row.addChild("th", l10n("waiting"));
+               
+               for(int i=0; i<jobsByPriority.length; i++) {
+                       row = threadsByPriorityTable.addChild("tr");
+                       row.addChild("td", String.valueOf(i));
+                       row.addChild("td", String.valueOf(jobsByPriority[i]));
+               }
+       }
+       
        private void drawStoreSizeBox(HTMLNode storeSizeInfobox, long 
nodeUptimeSeconds) {

                storeSizeInfobox.addChild("div", "class", "infobox-header", 
"Datastore");


Reply via email to