package com.limegroup.gnutella.statistics;
/**
* This class contains a type-safe enumeration of all classes for
* bandwidth data.
*/
public class BandwidthStat extends BasicKilobytesStatistic {
/**
* Make the constructor private so that only this class can construct
* a <tt>BandwidthStat</tt> instances.
*/
private BandwidthStat() {}
/**
* Specialized class for accumulating all upstream bandwidth data.
*/
public static class UpstreamBandwidthStat extends BandwidthStat {
public void addData(int data) {
super.addData(data);
UPSTREAM_BANDWIDTH.addData(data);
}
}
/**
* Specialized class for accumulating all downstream bandwidth data.
*/
public static class DownstreamBandwidthStat extends BandwidthStat {
public void addData(int data) {
super.addData(data);
DOWNSTREAM_BANDWIDTH.addData(data);
}
}
/**
* Specialized class for accumulating all downstream bandwidth sent
* over Gnutella.
*/
private static class DownstreamGnutellaBandwidthStat extends BandwidthStat {
public void addData(int data) {
super.addData(data);
GNUTELLA_DOWNSTREAM_BANDWIDTH.addData(data);
}
}
/**
* Specialized class for accumulating all upstream bandwidth sent
* over Gnutella.
*/
private static class UpstreamGnutellaBandwidthStat extends BandwidthStat {
public void addData(int data) {
super.addData(data);
GNUTELLA_UPSTREAM_BANDWIDTH.addData(data);
}
}
/**
* Specialized class for accumulating all downstream bandwidth sent
* over HTTP.
*/
private static class DownstreamHTTPBandwidthStat extends BandwidthStat {
public void addData(int data) {
super.addData(data);
HTTP_DOWNSTREAM_BANDWIDTH.addData(data);
}
}
/**
* Specialized class for accumulating all upstream bandwidth sent
* over HTTP.
*/
private static class UpstreamHTTPBandwidthStat extends BandwidthStat {
public void addData(int data) {
super.addData(data);
HTTP_UPSTREAM_BANDWIDTH.addData(data);
}
}
/**
* Specialized class for accumulating all downstream bandwidth sent
* over HTTP by in-network downloaders
*/
private static class DownstreamInNetworkHTTPBandwidthStat extends BandwidthStat {
public void addData(int data) {
super.addData(data);
HTTP_DOWNSTREAM_INNETWORK_BANDWIDTH.addData(data);
}
}
/**
* Specialized class for accumulating all upstream bandwidth sent
* over HTTP by forced-share uploaders
*/
private static class UpstreamInNetworkHTTPBandwidthStat extends BandwidthStat {
public void addData(int data) {
super.addData(data);
HTTP_UPSTREAM_INNETWORK_BANDWIDTH.addData(data);
}
}
/**
* <tt>Statistic</tt> for all upstream bandwidth.
*/
public static final Statistic UPSTREAM_BANDWIDTH =
new BandwidthStat();
/**
* <tt>Statistic</tt> for all downstream bandwidth.
*/
public static final Statistic DOWNSTREAM_BANDWIDTH =
new BandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP downstream bandwidth.
*/
public static final Statistic HTTP_DOWNSTREAM_BANDWIDTH =
new DownstreamBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP downstream bandwidth used by in-network downloaders
*/
public static final Statistic HTTP_DOWNSTREAM_INNETWORK_BANDWIDTH =
new DownstreamBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP upstream bandwidth.
*/
public static final Statistic HTTP_UPSTREAM_BANDWIDTH =
new UpstreamBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP upstream bandwidth used by forced uploaders
*/
public static final Statistic HTTP_UPSTREAM_INNETWORK_BANDWIDTH =
new UpstreamBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP downstream header bandwidth -- http
* headers read from the network.
*/
public static final Statistic HTTP_HEADER_DOWNSTREAM_BANDWIDTH =
new DownstreamHTTPBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP downstream header bandwidth -- http
* headers read from the network by forced-share uploaders
*/
public static final Statistic HTTP_HEADER_DOWNSTREAM_INNETWORK_BANDWIDTH =
new DownstreamInNetworkHTTPBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP message body bytes read from the
* network.
*/
public static final Statistic HTTP_BODY_DOWNSTREAM_BANDWIDTH =
new DownstreamHTTPBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP message body bytes read from the
* network by InNetwork downloaders.
*/
public static final Statistic HTTP_BODY_DOWNSTREAM_INNETWORK_BANDWIDTH =
new DownstreamInNetworkHTTPBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP upstream header bandwidth -- http
* headers read from the network.
*/
public static final Statistic HTTP_HEADER_UPSTREAM_BANDWIDTH =
new UpstreamHTTPBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP upstream header bandwidth -- http
* headers read from the network by in-network downloaders.
*/
public static final Statistic HTTP_HEADER_UPSTREAM_INNETWORK_BANDWIDTH =
new UpstreamInNetworkHTTPBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP message body bytes written to the
* network.
*/
public static final Statistic HTTP_BODY_UPSTREAM_BANDWIDTH =
new UpstreamHTTPBandwidthStat();
/**
* <tt>Statistic</tt> for all HTTP message body bytes written to the
* network by force-shared uploaders.
*/
public static final Statistic HTTP_BODY_UPSTREAM_INNETWORK_BANDWIDTH =
new UpstreamInNetworkHTTPBandwidthStat();
/**
* <tt>Statistic</tt> for all downstream bandwidth used by Gnutella.
*/
public static final Statistic GNUTELLA_DOWNSTREAM_BANDWIDTH =
new DownstreamBandwidthStat();
/**
* <tt>Statistic</tt> for all upstream bandwidth used by Gnutella.
*/
public static final Statistic GNUTELLA_UPSTREAM_BANDWIDTH =
new UpstreamBandwidthStat();
/**
* <tt>Statistic</tt> for all downstream bandwidth used by Gnutella
* message traffic.
*/
public static final Statistic GNUTELLA_MESSAGE_DOWNSTREAM_BANDWIDTH =
new DownstreamGnutellaBandwidthStat();
/**
* <tt>Statistic</tt> for all upstream bandwidth used by Gnutella
* message traffic.
*/
public static final Statistic GNUTELLA_MESSAGE_UPSTREAM_BANDWIDTH =
new UpstreamGnutellaBandwidthStat();
/**
* <tt>Statistic</tt> for all downstream bandwidth used by Gnutella
* connection headers.
*/
public static final Statistic GNUTELLA_HEADER_DOWNSTREAM_BANDWIDTH =
new DownstreamGnutellaBandwidthStat();
/**
* <tt>Statistic</tt> for all upstream bandwidth used by Gnutella
* connection headers.
*/
public static final Statistic GNUTELLA_HEADER_UPSTREAM_BANDWIDTH =
new UpstreamGnutellaBandwidthStat();
}