package com.limegroup.gnutella.statistics; /** * This class contains a type-safe enumeration of statistics for * individual Gnutella messages that have been received from other * nodes on the network. Each statistic maintains its own history, * all messages received over a specific number of time intervals, * etc. This class is specialized to only track messages received * from LimeWires. */ public class LimeReceivedMessageStat extends AdvancedStatistic { /** * Constructs a new <tt>MessageStat</tt> instance. */ private LimeReceivedMessageStat() {} /** * Private class for keeping track of filtered messages. */ private static class FilteredReceivedMessageStat extends LimeReceivedMessageStat { public void incrementStat() { super.incrementStat(); ALL_FILTERED_MESSAGES.incrementStat(); } } /** * Private class for keeping track of duplicate queries. */ private static class DuplicateQueriesReceivedMessageStat extends LimeReceivedMessageStat { public void incrementStat() { super.incrementStat(); ALL_DUPLICATE_QUERIES.incrementStat(); } } /** * Private class for keeping track of the number of UDP messages. */ private static class UDPReceivedMessageStat extends LimeReceivedMessageStat { public void incrementStat() { super.incrementStat(); ALL_MESSAGES.incrementStat(); UDP_ALL_MESSAGES.incrementStat(); } } /** * Private class for keeping track of the number of TCP messages. */ private static class TCPReceivedMessageStat extends LimeReceivedMessageStat { public void incrementStat() { super.incrementStat(); ALL_MESSAGES.incrementStat(); TCP_ALL_MESSAGES.incrementStat(); } } /** * Private class for keeping track of the number of MULTICAST messages. */ private static class MulticastReceivedMessageStat extends LimeReceivedMessageStat { public void incrementStat() { super.incrementStat(); ALL_MESSAGES.incrementStat(); MULTICAST_ALL_MESSAGES.incrementStat(); } } /** * <tt>Statistic</tt> for all messages received. */ public static final Statistic ALL_MESSAGES = new LimeReceivedMessageStat(); /** * <tt>Statistic</tt> for all UPD messages received. */ public static final Statistic UDP_ALL_MESSAGES = new LimeReceivedMessageStat(); /** * <tt>Statistic</tt> for all TCP messages received. */ public static final Statistic TCP_ALL_MESSAGES = new LimeReceivedMessageStat(); /** * <tt>Statistic</tt> for all MULTICAST messages received. */ public static final Statistic MULTICAST_ALL_MESSAGES = new LimeReceivedMessageStat(); /** * <tt>Statistic</tt> for all filtered messages. */ public static final Statistic ALL_FILTERED_MESSAGES = new LimeReceivedMessageStat(); /** * <tt>Statistic</tt> for all duplicate quereies. */ public static final Statistic ALL_DUPLICATE_QUERIES = new LimeReceivedMessageStat(); /////// individual message stats /////// /** * <tt>Statistic</tt> for Gnutella pings received over UDP. */ public static final Statistic UDP_PING_REQUESTS = new UDPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella pings received over TCP. */ public static final Statistic TCP_PING_REQUESTS = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella pings received over Multicast. */ public static final Statistic MULTICAST_PING_REQUESTS = new MulticastReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella pongs received over UDP. */ public static final Statistic UDP_PING_REPLIES = new UDPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella pongs received over TCP. */ public static final Statistic TCP_PING_REPLIES = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella pongs received over Multicast. */ public static final Statistic MULTICAST_PING_REPLIES = new MulticastReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella query requests received over * UDP. */ public static final Statistic UDP_QUERY_REQUESTS = new UDPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella query requests received over * TCP. */ public static final Statistic TCP_QUERY_REQUESTS = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella query requests received over * Multicast. */ public static final Statistic MULTICAST_QUERY_REQUESTS = new MulticastReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella query replies received over * UDP. */ public static final Statistic UDP_QUERY_REPLIES = new UDPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella query replies received over * TCP. */ public static final Statistic TCP_QUERY_REPLIES = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella query replies received over * Multicast. */ public static final Statistic MULTICAST_QUERY_REPLIES = new MulticastReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella push requests received over * UDP. */ public static final Statistic UDP_PUSH_REQUESTS = new UDPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella push requests received over * TCP. */ public static final Statistic TCP_PUSH_REQUESTS = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella push requests received over * Multicast. */ public static final Statistic MULTICAST_PUSH_REQUESTS = new MulticastReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella route table messages received * over UDP. */ public static final Statistic UDP_ROUTE_TABLE_MESSAGES = new UDPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella reset route table messages received * over TCP. */ public static final Statistic TCP_RESET_ROUTE_TABLE_MESSAGES = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella patch route table messages received * over TCP. */ public static final Statistic TCP_PATCH_ROUTE_TABLE_MESSAGES = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella route table messages received * over Multicast. */ public static final Statistic MULTICAST_ROUTE_TABLE_MESSAGES = new MulticastReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella filtered messages received * over UDP. */ public static final Statistic UDP_FILTERED_MESSAGES = new FilteredReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella filtered messages received * over TCP. */ public static final Statistic TCP_FILTERED_MESSAGES = new FilteredReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella filtered messages received * over Multicast. */ public static final Statistic MULTICAST_FILTERED_MESSAGES = new FilteredReceivedMessageStat(); /** * <tt>Statistic</tt> for duplicate Gnutella queries received * over UDP. */ public static final Statistic UDP_DUPLICATE_QUERIES = new DuplicateQueriesReceivedMessageStat(); /** * <tt>Statistic</tt> for duplicate Gnutella queries received * over TCP. */ public static final Statistic TCP_DUPLICATE_QUERIES = new DuplicateQueriesReceivedMessageStat(); /** * <tt>Statistic</tt> for duplicate Gnutella queries received * over Multicast. */ public static final Statistic MULTICAST_DUPLICATE_QUERIES = new DuplicateQueriesReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella hops flow messages received over * TCP. */ public static final Statistic TCP_HOPS_FLOW = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella meta-vendor messages received over * TCP. */ public static final Statistic TCP_MESSAGES_SUPPORTED = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella TCP ConnectBack messages received over * TCP. */ public static final Statistic TCP_TCP_CONNECTBACK = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella UDP ConnectBack received over * TCP. */ public static final Statistic TCP_UDP_CONNECTBACK = new TCPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella ReplyNumber VM received over * UDP. */ public static final Statistic UDP_REPLY_NUMBER = new UDPReceivedMessageStat(); /** * <tt>Statistic</tt> for Gnutella LimeACK VM received over * UDP. */ public static final Statistic UDP_LIME_ACK = new UDPReceivedMessageStat(); }