package com.limegroup.gnutella.statistics;
/**
* This class contains a type-safe enumeration of all classes that
* store statistics on routing errors.
*/
public class RouteErrorStat extends AdvancedStatistic {
/**
* Constructs a new <tt>RouteErrorStat</tt> instance with
* 0 for all historical data fields.
*/
private RouteErrorStat() {}
/**
* Private class for keeping track of routing error statistics.
*/
private static class GeneralRouteErrorStat extends RouteErrorStat {
public void incrementStat() {
super.incrementStat();
ALL_ROUTE_ERRORS.incrementStat();
}
}
private static class QueryReplyRouteErrorStat
extends GeneralRouteErrorStat {
public void incrementStat() {
super.incrementStat();
QUERY_REPLY_ROUTE_ERRORS.incrementStat();
}
}
/**
* <tt>Statistic</tt> for all route errors.
*/
public static final Statistic ALL_ROUTE_ERRORS =
new RouteErrorStat();
/**
* <tt>Statistic</tt> for Gnutella pong routing errors.
*/
public static final Statistic PING_REPLY_ROUTE_ERRORS =
new GeneralRouteErrorStat();
/**
* <tt>Statistic</tt> for Gnutella query reply routing errors.
*/
public static final Statistic QUERY_REPLY_ROUTE_ERRORS =
new GeneralRouteErrorStat();
/**
* <tt>Statistic</tt> for Gnutella push routing errors.
*/
public static final Statistic PUSH_REQUEST_ROUTE_ERRORS =
new GeneralRouteErrorStat();
/**
* <tt>Statistic</tt> for Gnutella query reply routing errors from
* hard kilobyte limit.
*/
public static final Statistic HARD_LIMIT_QUERY_REPLY_ROUTE_ERRORS =
new QueryReplyRouteErrorStat();
/**
* <tt>Statistic</tt> for Gnutella query reply routing errors from
* hard kilobyte limit.
*/
public static final Statistic HARD_LIMIT_QUERY_REPLY_TTL[] =
new QueryReplyRouteErrorStat[6];
static {
for (int i = 0; i < HARD_LIMIT_QUERY_REPLY_TTL.length; i++)
HARD_LIMIT_QUERY_REPLY_TTL[i] = new QueryReplyRouteErrorStat();
}
/**
* <tt>Statistic</tt> for Gnutella query reply routing errors from
* not finding a route.
*/
public static final Statistic NO_ROUTE_QUERY_REPLY_ROUTE_ERRORS =
new QueryReplyRouteErrorStat();
}