package com.limegroup.gnutella.statistics; /** * Wrapper class for keeping track of Gnutella message data. For a given * Gnutella message, this class provides the simultaneous updating of both * the number of messages sent and the total bytes sent. All calls to add * data for sent Gnutella message statistics should go through this class * to avoid losing any data. */ public class SentMessageStatHandler extends AbstractStatHandler { /** * Creates a new <tt>SentMessageStatHandler</tt> instance. * Private constructor to ensure that no other classes can * construct this class, following the type-safe enum pattern. * * @param numberStat the statistic that is simply incremented with * each new message * @param byteStat the statistic for keeping track of the total bytes */ private SentMessageStatHandler(Statistic numberStat, Statistic byteStat, Statistic limeNumberStat, Statistic limeByteStat) { super(numberStat, byteStat, limeNumberStat, limeByteStat, BandwidthStat.GNUTELLA_MESSAGE_UPSTREAM_BANDWIDTH); } /** * <tt>SentMessageStatHandler</tt> for Gnutella pings sent over UDP. */ public static final SentMessageStatHandler UDP_PING_REQUESTS = new SentMessageStatHandler(SentMessageStat.UDP_PING_REQUESTS, SentMessageStatBytes.UDP_PING_REQUESTS, LimeSentMessageStat.UDP_PING_REQUESTS, LimeSentMessageStatBytes.UDP_PING_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella pings sent over TCP. */ public static final SentMessageStatHandler TCP_PING_REQUESTS = new SentMessageStatHandler(SentMessageStat.TCP_PING_REQUESTS, SentMessageStatBytes.TCP_PING_REQUESTS, LimeSentMessageStat.TCP_PING_REQUESTS, LimeSentMessageStatBytes.TCP_PING_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella pings sent over MULTICAST. */ public static final SentMessageStatHandler MULTICAST_PING_REQUESTS = new SentMessageStatHandler(SentMessageStat.MULTICAST_PING_REQUESTS, SentMessageStatBytes.MULTICAST_PING_REQUESTS, LimeSentMessageStat.MULTICAST_PING_REQUESTS, LimeSentMessageStatBytes.MULTICAST_PING_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella pongs sent over UDP. */ public static final SentMessageStatHandler UDP_PING_REPLIES = new SentMessageStatHandler(SentMessageStat.UDP_PING_REPLIES, SentMessageStatBytes.UDP_PING_REPLIES, LimeSentMessageStat.UDP_PING_REPLIES, LimeSentMessageStatBytes.UDP_PING_REPLIES); /** * <tt>SentMessageStatHandler</tt> for Gnutella pongs sent over TCP. */ public static final SentMessageStatHandler TCP_PING_REPLIES = new SentMessageStatHandler(SentMessageStat.TCP_PING_REPLIES, SentMessageStatBytes.TCP_PING_REPLIES, LimeSentMessageStat.TCP_PING_REPLIES, LimeSentMessageStatBytes.TCP_PING_REPLIES); /** * <tt>SentMessageStatHandler</tt> for Gnutella pongs sent over MULTICAST. */ public static final SentMessageStatHandler MULTICAST_PING_REPLIES = new SentMessageStatHandler(SentMessageStat.MULTICAST_PING_REPLIES, SentMessageStatBytes.MULTICAST_PING_REPLIES, LimeSentMessageStat.MULTICAST_PING_REPLIES, LimeSentMessageStatBytes.MULTICAST_PING_REPLIES); /** * <tt>SentMessageStatHandler</tt> for Gnutella query requests sent * over UDP. */ public static final SentMessageStatHandler UDP_QUERY_REQUESTS = new SentMessageStatHandler(SentMessageStat.UDP_QUERY_REQUESTS, SentMessageStatBytes.UDP_QUERY_REQUESTS, LimeSentMessageStat.UDP_QUERY_REQUESTS, LimeSentMessageStatBytes.UDP_QUERY_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella query requests sent * over TCP. */ public static final SentMessageStatHandler TCP_QUERY_REQUESTS = new SentMessageStatHandler(SentMessageStat.TCP_QUERY_REQUESTS, SentMessageStatBytes.TCP_QUERY_REQUESTS, LimeSentMessageStat.TCP_QUERY_REQUESTS, LimeSentMessageStatBytes.TCP_QUERY_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella query requests sent * over MULTICAST. */ public static final SentMessageStatHandler MULTICAST_QUERY_REQUESTS = new SentMessageStatHandler(SentMessageStat.MULTICAST_QUERY_REQUESTS, SentMessageStatBytes.MULTICAST_QUERY_REQUESTS, LimeSentMessageStat.MULTICAST_QUERY_REQUESTS, LimeSentMessageStatBytes.MULTICAST_QUERY_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella query replies sent over * UDP. */ public static final SentMessageStatHandler UDP_QUERY_REPLIES = new SentMessageStatHandler(SentMessageStat.UDP_QUERY_REPLIES, SentMessageStatBytes.UDP_QUERY_REPLIES, LimeSentMessageStat.UDP_QUERY_REPLIES, LimeSentMessageStatBytes.UDP_QUERY_REPLIES); /** * <tt>SentMessageStatHandler</tt> for Gnutella query replies sent over * TCP. */ public static final SentMessageStatHandler TCP_QUERY_REPLIES = new SentMessageStatHandler(SentMessageStat.TCP_QUERY_REPLIES, SentMessageStatBytes.TCP_QUERY_REPLIES, LimeSentMessageStat.TCP_QUERY_REPLIES, LimeSentMessageStatBytes.TCP_QUERY_REPLIES); /** * <tt>SentMessageStatHandler</tt> for Gnutella query replies sent over * MULTICAST. */ public static final SentMessageStatHandler MULTICAST_QUERY_REPLIES = new SentMessageStatHandler(SentMessageStat.MULTICAST_QUERY_REPLIES, SentMessageStatBytes.MULTICAST_QUERY_REPLIES, LimeSentMessageStat.MULTICAST_QUERY_REPLIES, LimeSentMessageStatBytes.TCP_QUERY_REPLIES); /** * <tt>SentMessageStatHandler</tt> for Gnutella push requests sent over * UDP. */ public static final SentMessageStatHandler UDP_PUSH_REQUESTS = new SentMessageStatHandler(SentMessageStat.UDP_PUSH_REQUESTS, SentMessageStatBytes.UDP_PUSH_REQUESTS, LimeSentMessageStat.UDP_PUSH_REQUESTS, LimeSentMessageStatBytes.UDP_PUSH_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella push requests sent over * TCP. */ public static final SentMessageStatHandler TCP_PUSH_REQUESTS = new SentMessageStatHandler(SentMessageStat.TCP_PUSH_REQUESTS, SentMessageStatBytes.TCP_PUSH_REQUESTS, LimeSentMessageStat.TCP_PUSH_REQUESTS, LimeSentMessageStatBytes.TCP_PUSH_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella push requests sent over * MULTICAST. */ public static final SentMessageStatHandler MULTICAST_PUSH_REQUESTS = new SentMessageStatHandler(SentMessageStat.MULTICAST_PUSH_REQUESTS, SentMessageStatBytes.MULTICAST_PUSH_REQUESTS, LimeSentMessageStat.MULTICAST_PUSH_REQUESTS, LimeSentMessageStatBytes.MULTICAST_PUSH_REQUESTS); /** * <tt>SentMessageStatHandler</tt> for Gnutella route table messages sent * over UDP. */ public static final SentMessageStatHandler UDP_ROUTE_TABLE_MESSAGES = new SentMessageStatHandler(SentMessageStat.UDP_ROUTE_TABLE_MESSAGES, SentMessageStatBytes.UDP_ROUTE_TABLE_MESSAGES, LimeSentMessageStat.UDP_ROUTE_TABLE_MESSAGES, LimeSentMessageStatBytes.UDP_ROUTE_TABLE_MESSAGES); /** * <tt>SentMessageStatHandler</tt> for Gnutella reset route table messages * sent ver TCP. */ public static final SentMessageStatHandler TCP_RESET_ROUTE_TABLE_MESSAGES = new SentMessageStatHandler(SentMessageStat.TCP_RESET_ROUTE_TABLE_MESSAGES, SentMessageStatBytes.TCP_RESET_ROUTE_TABLE_MESSAGES, LimeSentMessageStat.TCP_RESET_ROUTE_TABLE_MESSAGES, LimeSentMessageStatBytes.TCP_RESET_ROUTE_TABLE_MESSAGES); /** * <tt>SentMessageStatHandler</tt> for Gnutella patch route table messages * sent over TCP. */ public static final SentMessageStatHandler TCP_PATCH_ROUTE_TABLE_MESSAGES = new SentMessageStatHandler(SentMessageStat.TCP_PATCH_ROUTE_TABLE_MESSAGES, SentMessageStatBytes.TCP_PATCH_ROUTE_TABLE_MESSAGES, LimeSentMessageStat.TCP_PATCH_ROUTE_TABLE_MESSAGES, LimeSentMessageStatBytes.TCP_PATCH_ROUTE_TABLE_MESSAGES); /** * <tt>SentMessageStatHandler</tt> for Gnutella route table messages sent * over MULTICAST. */ public static final SentMessageStatHandler MULTICAST_ROUTE_TABLE_MESSAGES = new SentMessageStatHandler(SentMessageStat.MULTICAST_ROUTE_TABLE_MESSAGES, SentMessageStatBytes.MULTICAST_ROUTE_TABLE_MESSAGES, LimeSentMessageStat.MULTICAST_ROUTE_TABLE_MESSAGES, LimeSentMessageStatBytes.MULTICAST_ROUTE_TABLE_MESSAGES); /** * <tt>SentMessageStatHandler</tt> for Gnutella filtered messages sent * over UDP. */ public static final SentMessageStatHandler UDP_FILTERED_MESSAGES = new SentMessageStatHandler(SentMessageStat.UDP_FILTERED_MESSAGES, SentMessageStatBytes.UDP_FILTERED_MESSAGES, LimeSentMessageStat.UDP_FILTERED_MESSAGES, LimeSentMessageStatBytes.UDP_FILTERED_MESSAGES); /** * <tt>SentMessageStatHandler</tt> for Gnutella filtered messages sent * over TCP. */ public static final SentMessageStatHandler TCP_FILTERED_MESSAGES = new SentMessageStatHandler(SentMessageStat.TCP_FILTERED_MESSAGES, SentMessageStatBytes.TCP_FILTERED_MESSAGES, LimeSentMessageStat.TCP_FILTERED_MESSAGES, LimeSentMessageStatBytes.TCP_FILTERED_MESSAGES); /** * <tt>SentMessageStatHandler</tt> for Gnutella filtered messages sent * over MULTICAST. */ public static final SentMessageStatHandler MULTICAST_FILTERED_MESSAGES = new SentMessageStatHandler(SentMessageStat.MULTICAST_FILTERED_MESSAGES, SentMessageStatBytes.MULTICAST_FILTERED_MESSAGES, LimeSentMessageStat.MULTICAST_FILTERED_MESSAGES, LimeSentMessageStatBytes.MULTICAST_FILTERED_MESSAGES); public static final SentMessageStatHandler UDP_LIME_ACK = new SentMessageStatHandler(SentMessageStat.UDP_LIME_ACK, SentMessageStatBytes.UDP_LIME_ACK, LimeSentMessageStat.UDP_LIME_ACK, LimeSentMessageStatBytes.UDP_LIME_ACK); public static final SentMessageStatHandler TCP_HOPS_FLOW = new SentMessageStatHandler(SentMessageStat.TCP_HOPS_FLOW, SentMessageStatBytes.TCP_HOPS_FLOW, LimeSentMessageStat.TCP_HOPS_FLOW, LimeSentMessageStatBytes.TCP_HOPS_FLOW); public static final SentMessageStatHandler TCP_GIVE_STATS = new SentMessageStatHandler(SentMessageStat.TCP_GIVE_STATS, SentMessageStatBytes.TCP_GIVE_STATS, LimeSentMessageStat.TCP_GIVE_STATS, LimeSentMessageStatBytes.TCP_GIVE_STATS); public static final SentMessageStatHandler UDP_GIVE_STATS = new SentMessageStatHandler(SentMessageStat.UDP_GIVE_STATS, SentMessageStatBytes.UDP_GIVE_STATS, LimeSentMessageStat.UDP_GIVE_STATS, LimeSentMessageStatBytes.UDP_GIVE_STATS); public static final SentMessageStatHandler TCP_TCP_CONNECTBACK = new SentMessageStatHandler(SentMessageStat.TCP_TCP_CONNECTBACK, SentMessageStatBytes.TCP_TCP_CONNECTBACK, LimeSentMessageStat.TCP_TCP_CONNECTBACK, LimeSentMessageStatBytes.TCP_TCP_CONNECTBACK); public static final SentMessageStatHandler TCP_UDP_CONNECTBACK = new SentMessageStatHandler(SentMessageStat.TCP_UDP_CONNECTBACK, SentMessageStatBytes.TCP_UDP_CONNECTBACK, LimeSentMessageStat.TCP_UDP_CONNECTBACK, LimeSentMessageStatBytes.TCP_UDP_CONNECTBACK); public static final SentMessageStatHandler TCP_MESSAGES_SUPPORTED = new SentMessageStatHandler(SentMessageStat.TCP_MESSAGES_SUPPORTED, SentMessageStatBytes.TCP_MESSAGES_SUPPORTED, LimeSentMessageStat.TCP_MESSAGES_SUPPORTED, LimeSentMessageStatBytes.TCP_MESSAGES_SUPPORTED); public static final SentMessageStatHandler UDP_REPLY_NUMBER = new SentMessageStatHandler(SentMessageStat.UDP_REPLY_NUMBER, SentMessageStatBytes.UDP_REPLY_NUMBER, LimeSentMessageStat.UDP_REPLY_NUMBER, LimeSentMessageStatBytes.UDP_REPLY_NUMBER); }