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