Update of /cvsroot/freenet/freenet/src/freenet/node/rt
In directory sc8-pr-cvs1:/tmp/cvs-serv1348/src/freenet/node/rt

Modified Files:
      Tag: ngrouting
        StandardNodeEstimator.java NodeEstimator.java 
Added Files:
      Tag: ngrouting
        ComparableStringMap.java 
Log Message:
Make the column data sortable


--- NEW FILE: ComparableStringMap.java ---
package freenet.node.rt;
import freenet.support.Comparable;
import freenet.support.StringMap;

interface ComparableStringMap extends Comparable, StringMap {
}

Index: StandardNodeEstimator.java
===================================================================
RCS file: 
/cvsroot/freenet/freenet/src/freenet/node/rt/Attic/StandardNodeEstimator.java,v
retrieving revision 1.1.2.16
retrieving revision 1.1.2.17
diff -u -r1.1.2.16 -r1.1.2.17
--- StandardNodeEstimator.java  26 Aug 2003 19:33:27 -0000      1.1.2.16
+++ StandardNodeEstimator.java  30 Aug 2003 19:42:15 -0000      1.1.2.17
@@ -440,7 +440,47 @@
          "Search died time", 
          "Open Outbound Connections", "Open Inbound Connections" };
        
-       public StringMap getDiagProperties() {
+       static class MyComparableStringMap 
+           extends SimpleStringMap implements ComparableStringMap {
+               public MyComparableStringMap(Object[] values) {
+                       super(REF_PROPERTIES, values);
+               }
+               
+               public int compareTo(Object o) {
+                       MyComparableStringMap sm = (MyComparableStringMap)o;
+                       // Connected nodes go at the top
+                       if(openConnections() == 0 && sm.openConnections() > 0)
+                               return 1;
+                       if(openConnections() > 0 && sm.openConnections() == 0)
+                               return -1;
+                       // Next sort by successes
+                       if(successes() < sm.successes())
+                               return 1;
+                       if(successes() > sm.successes())
+                               return -1;
+                       return 0;
+               }
+               
+               protected int openConnections() {
+                       Integer outboundConnections = (Integer)objs[14];
+                       Integer inboundConnections = (Integer)objs[15];
+                       return outboundConnections.intValue() +
+                               inboundConnections.intValue();
+               }
+               
+               protected int successes() {
+                       Integer successes = (Integer)objs[6];
+                       return successes.intValue();
+               }
+               
+               public boolean equals(Object o) {
+                       if(o instanceof MyComparableStringMap) 
+                               return compareTo(o) == 0;
+                       else return false;
+               }
+       }
+       
+       public ComparableStringMap getDiagProperties() {
                Object[] values = new Object[REF_PROPERTIES.length];
                values[0] = ref.firstPhysicalToString();
                values[1] = new Float(1.0 - rpConnectFailed.currentValue());
@@ -465,6 +505,6 @@
                        new Integer(ngrt.countOutboundConnections(ref.getIdentity()));
                values[15] = 
                        new Integer(ngrt.countInboundConnections(ref.getIdentity()));
-               return new SimpleStringMap(REF_PROPERTIES, values);
+               return new MyComparableStringMap(values);
        }
 }

Index: NodeEstimator.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/node/rt/Attic/NodeEstimator.java,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.11
diff -u -r1.1.2.10 -r1.1.2.11
--- NodeEstimator.java  26 Aug 2003 02:01:04 -0000      1.1.2.10
+++ NodeEstimator.java  30 Aug 2003 19:42:15 -0000      1.1.2.11
@@ -65,7 +65,7 @@
        
     abstract public void dataNotFound(Key key, long searchTime, int htl);
        
-       abstract public StringMap getDiagProperties();
+       abstract public ComparableStringMap getDiagProperties();
        
        abstract public void toHtml(PrintWriter pw, String imageLinkPrefix) 
                throws IOException;

_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to