package com.limegroup.gnutella.statistics; /** * This class contains a type-safe enumeration of all classes for * compression data. */ public class CompressionStat extends AdvancedKilobytesStatistic { /** * Make the constructor private so that only this class can construct * a <tt>BandwidthStat</tt> instances. */ private CompressionStat() {} /** * Specialized class for accumulating all uncompressed upstream data. */ private static class UncompressedUpstream extends CompressionStat { public void addData(int data) { super.addData(data); UPSTREAM_UNCOMPRESSED.addData(data); } } /** * Specialized class for accumulating all uncompressed downstream data. */ private static class UncompressedDownstream extends CompressionStat { public void addData(int data) { super.addData(data); DOWNSTREAM_UNCOMPRESSED.addData(data); } } /** * Specialized class for accumulating all compressed upstream data. */ private static class CompressedUpstream extends CompressionStat { public void addData(int data) { super.addData(data); UPSTREAM_COMPRESSED.addData(data); } } /** * Specialized class for accumulating all compressed downstream data. */ private static class CompressedDownstream extends CompressionStat { public void addData(int data) { super.addData(data); DOWNSTREAM_COMPRESSED.addData(data); } } /** * <tt>Statistic</tt> for all upstream uncompressed bandwidth. */ public static final Statistic UPSTREAM_UNCOMPRESSED = new CompressionStat(); /** * <tt>Statistic</tt> for all downstream uncompressed bandwidth. */ public static final Statistic DOWNSTREAM_UNCOMPRESSED = new CompressionStat(); /** * <tt>Statistic</tt> for all upstream compressed bandwidth. */ public static final Statistic UPSTREAM_COMPRESSED = new CompressionStat(); /** * <tt>Statistic</tt> for all downstream compressed bandwidth. */ public static final Statistic DOWNSTREAM_COMPRESSED = new CompressionStat(); /** * <tt>Statistic</tt> for all upstream Gnutella uncompressed traffic. */ public static final Statistic GNUTELLA_UNCOMPRESSED_UPSTREAM = new UncompressedUpstream(); /** * <tt>Statistic</tt> for all downstream Gnutella uncompressed traffic. */ public static final Statistic GNUTELLA_UNCOMPRESSED_DOWNSTREAM = new UncompressedDownstream(); /** * <tt>Statistic</tt> for all upstream Gnutella compressed traffic. */ public static final Statistic GNUTELLA_COMPRESSED_UPSTREAM = new CompressedUpstream(); /** * <tt>Statistic</tt> for all downstream Gnutella compressed traffic. */ public static final Statistic GNUTELLA_COMPRESSED_DOWNSTREAM = new CompressedDownstream(); /** * <tt>Statistic</tt> for all upstream HTTP uncompressed traffic. */ public static final Statistic HTTP_UNCOMPRESSED_UPSTREAM = new UncompressedUpstream(); /** * <tt>Statistic</tt> for all downstream HTTP uncompressed traffic. */ public static final Statistic HTTP_UNCOMPRESSED_DOWNSTREAM = new UncompressedDownstream(); /** * <tt>Statistic</tt> for all upstream HTTP compressed traffic. */ public static final Statistic HTTP_COMPRESSED_UPSTREAM = new CompressedUpstream(); /** * <tt>Statistic</tt> for all downstream HTTP compressed traffic. */ public static final Statistic HTTP_COMPRESSED_DOWNSTREAM = new CompressedDownstream(); }