// $gleason: trafficmon/BWSpot.java,v 1.8 2003/06/30 21:39:58 clash Exp $ // Property of Joseph Gleason // Copyright 2003 package cc.glsn.trafficmon; import java.io.Serializable; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Calendar; public class BWSpot implements Comparable, Serializable { private static final long serialVersionUID = -6023091002513075583L; public double Bin; // B/s public double Bout; // B/s public int TimeStamp; public BWSpot() { } public double Btot() { return Bin+Bout; } public double getDir(int DIR) { if (DIR==TrafficMon.DirTotal) return Btot(); if (DIR==TrafficMon.DirIn) return Bin; if (DIR==TrafficMon.DirOut) return Bout; return 0.0; } public int compareTo(Object O) { if (O instanceof BWSpot) { BWSpot O2=(BWSpot)O; if (TimeStamp < O2.TimeStamp) return -1; if (TimeStamp > O2.TimeStamp) return 1; return 0; } return 0; } public String getLine(Converter Conv) { String S=""; S+="TOTAL: " + FindConversion(Btot(),Conv) + " IN: " + FindConversion(Bin,Conv) + " OUT: " + FindConversion(Bout,Conv) + " - "; Calendar C=Calendar.getInstance(); long MilliTime=TimeStamp; MilliTime=MilliTime*1000; C.setTimeInMillis(MilliTime); SimpleDateFormat SDF=new SimpleDateFormat("yyyy.MM.dd kk:mm:ss"); S+=SDF.format(C.getTime()); return S; } private static String FindConversion(double B,Converter Conv) { String S=""; NumberFormat NF=new java.text.DecimalFormat(); NF.setMinimumFractionDigits(2); NF.setMaximumFractionDigits(2); if (Conv.ConvTo(B,"kb/s") < 512.0) { S+="" + NF.format(Conv.ConvTo(B,"kb/s")) + " kb/s"; return S; } if (Conv.ConvTo(B,"mb/s") < 512.0) { S+="" + NF.format(Conv.ConvTo(B,"mb/s")) + " mb/s"; return S; } if (Conv.ConvTo(B,"gb/s") < 512.0) { S+="" + NF.format(Conv.ConvTo(B,"gb/s")) + " gb/s"; return S; } S+="" + NF.format(Conv.ConvTo(B,"tb/s")) + " tb/s"; return S; } }