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 received and the total bytes received. All calls
* to add data for received Gnutella message statistics should go through
* this class to avoid losing any data.
*/
public final class ReceivedMessageStatHandler extends AbstractMessageStatHandler {
/**
* Creates a new <tt>ReceivedMessageStatHandler</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 ReceivedMessageStatHandler(Statistic numberStat,
Statistic byteStat,
Statistic limeNumberStat,
Statistic limeByteStat,
String fileName) {
super(numberStat, byteStat, limeNumberStat, limeByteStat,
BandwidthStat.GNUTELLA_MESSAGE_DOWNSTREAM_BANDWIDTH, fileName);
}
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella pings received over UDP.
*/
public static final ReceivedMessageStatHandler UDP_PING_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_PING_REQUESTS,
ReceivedMessageStatBytes.UDP_PING_REQUESTS,
LimeReceivedMessageStat.UDP_PING_REQUESTS,
LimeReceivedMessageStatBytes.UDP_PING_REQUESTS,
"RECEIVED_UDP_PING_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella pings received over TCP.
*/
public static final ReceivedMessageStatHandler TCP_PING_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_PING_REQUESTS,
ReceivedMessageStatBytes.TCP_PING_REQUESTS,
LimeReceivedMessageStat.TCP_PING_REQUESTS,
LimeReceivedMessageStatBytes.TCP_PING_REQUESTS,
"RECEIVED_TCP_PING_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella pings received over Multicast.
*/
public static final ReceivedMessageStatHandler MULTICAST_PING_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.MULTICAST_PING_REQUESTS,
ReceivedMessageStatBytes.MULTICAST_PING_REQUESTS,
LimeReceivedMessageStat.MULTICAST_PING_REQUESTS,
LimeReceivedMessageStatBytes.MULTICAST_PING_REQUESTS,
"RECEIVED_MULTICAST_PING_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella pongs received over UDP.
*/
public static final ReceivedMessageStatHandler UDP_PING_REPLIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_PING_REPLIES,
ReceivedMessageStatBytes.UDP_PING_REPLIES,
LimeReceivedMessageStat.UDP_PING_REPLIES,
LimeReceivedMessageStatBytes.UDP_PING_REPLIES,
"RECEIVED_UDP_PING_REPLIES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella pongs received over TCP.
*/
public static final ReceivedMessageStatHandler TCP_PING_REPLIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_PING_REPLIES,
ReceivedMessageStatBytes.TCP_PING_REPLIES,
LimeReceivedMessageStat.TCP_PING_REPLIES,
LimeReceivedMessageStatBytes.TCP_PING_REPLIES,
"RECEIVED_TCP_PING_REPLIES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella pongs received over Multicast.
*/
public static final ReceivedMessageStatHandler MULTICAST_PING_REPLIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.MULTICAST_PING_REPLIES,
ReceivedMessageStatBytes.MULTICAST_PING_REPLIES,
LimeReceivedMessageStat.MULTICAST_PING_REPLIES,
LimeReceivedMessageStatBytes.MULTICAST_PING_REPLIES,
"RECEIVED_MULTICAST_PING_REPLIES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella query requests received
* over UDP.
*/
public static final ReceivedMessageStatHandler UDP_QUERY_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_QUERY_REQUESTS,
ReceivedMessageStatBytes.UDP_QUERY_REQUESTS,
LimeReceivedMessageStat.UDP_QUERY_REQUESTS,
LimeReceivedMessageStatBytes.UDP_QUERY_REQUESTS,
"RECEIVED_UDP_QUERY_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella query requests received
* over TCP.
*/
public static final ReceivedMessageStatHandler TCP_QUERY_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_QUERY_REQUESTS,
ReceivedMessageStatBytes.TCP_QUERY_REQUESTS,
LimeReceivedMessageStat.TCP_QUERY_REQUESTS,
LimeReceivedMessageStatBytes.TCP_QUERY_REQUESTS,
"RECEIVED_TCP_QUERY_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella query requests received
* over Multicast.
*/
public static final ReceivedMessageStatHandler MULTICAST_QUERY_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.MULTICAST_QUERY_REQUESTS,
ReceivedMessageStatBytes.MULTICAST_QUERY_REQUESTS,
LimeReceivedMessageStat.MULTICAST_QUERY_REQUESTS,
LimeReceivedMessageStatBytes.MULTICAST_QUERY_REQUESTS,
"RECEIVED_MULTICAST_QUERY_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella query replies received over
* UDP.
*/
public static final ReceivedMessageStatHandler UDP_QUERY_REPLIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_QUERY_REPLIES,
ReceivedMessageStatBytes.UDP_QUERY_REPLIES,
LimeReceivedMessageStat.UDP_QUERY_REPLIES,
LimeReceivedMessageStatBytes.UDP_QUERY_REPLIES,
"RECEIVED_UDP_QUERY_REPLIES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella query replies received over
* TCP.
*/
public static final ReceivedMessageStatHandler TCP_QUERY_REPLIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_QUERY_REPLIES,
ReceivedMessageStatBytes.TCP_QUERY_REPLIES,
LimeReceivedMessageStat.TCP_QUERY_REPLIES,
LimeReceivedMessageStatBytes.TCP_QUERY_REPLIES,
"RECEIVED_TCP_QUERY_REPLIES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella query replies received over
* Multicast.
*/
public static final ReceivedMessageStatHandler MULTICAST_QUERY_REPLIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.MULTICAST_QUERY_REPLIES,
ReceivedMessageStatBytes.MULTICAST_QUERY_REPLIES,
LimeReceivedMessageStat.MULTICAST_QUERY_REPLIES,
LimeReceivedMessageStatBytes.MULTICAST_QUERY_REPLIES,
"RECEIVED_MULTICAST_QUERY_REPLIES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella push requests received over
* UDP.
*/
public static final ReceivedMessageStatHandler UDP_PUSH_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_PUSH_REQUESTS,
ReceivedMessageStatBytes.UDP_PUSH_REQUESTS,
LimeReceivedMessageStat.UDP_PUSH_REQUESTS,
LimeReceivedMessageStatBytes.UDP_PUSH_REQUESTS,
"RECEIVED_UDP_PUSH_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella push requests received over
* TCP.
*/
public static final ReceivedMessageStatHandler TCP_PUSH_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_PUSH_REQUESTS,
ReceivedMessageStatBytes.TCP_PUSH_REQUESTS,
LimeReceivedMessageStat.TCP_PUSH_REQUESTS,
LimeReceivedMessageStatBytes.TCP_PUSH_REQUESTS,
"RECEIVED_TCP_PUSH_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella push requests received over
* Multicast.
*/
public static final ReceivedMessageStatHandler MULTICAST_PUSH_REQUESTS =
new ReceivedMessageStatHandler(ReceivedMessageStat.MULTICAST_PUSH_REQUESTS,
ReceivedMessageStatBytes.MULTICAST_PUSH_REQUESTS,
LimeReceivedMessageStat.MULTICAST_PUSH_REQUESTS,
LimeReceivedMessageStatBytes.MULTICAST_PUSH_REQUESTS,
"RECEIVED_MULTICAST_PUSH_REQUESTS");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella route table messages received
* over UDP.
*/
public static final ReceivedMessageStatHandler UDP_ROUTE_TABLE_MESSAGES =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_ROUTE_TABLE_MESSAGES,
ReceivedMessageStatBytes.UDP_ROUTE_TABLE_MESSAGES,
LimeReceivedMessageStat.UDP_ROUTE_TABLE_MESSAGES,
LimeReceivedMessageStatBytes.UDP_ROUTE_TABLE_MESSAGES,
"RECEIVED_UDP_ROUTE_TABLE_MESSAGES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella reset route table messages
* received over TCP.
*/
public static final ReceivedMessageStatHandler TCP_RESET_ROUTE_TABLE_MESSAGES =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_RESET_ROUTE_TABLE_MESSAGES,
ReceivedMessageStatBytes.TCP_RESET_ROUTE_TABLE_MESSAGES,
LimeReceivedMessageStat.TCP_RESET_ROUTE_TABLE_MESSAGES,
LimeReceivedMessageStatBytes.TCP_RESET_ROUTE_TABLE_MESSAGES,
"RECEIVED_TCP_RESET_ROUTE_TABLE_MESSAGES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella route table patch messages
* received over TCP.
*/
public static final ReceivedMessageStatHandler TCP_PATCH_ROUTE_TABLE_MESSAGES =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_PATCH_ROUTE_TABLE_MESSAGES,
ReceivedMessageStatBytes.TCP_PATCH_ROUTE_TABLE_MESSAGES,
LimeReceivedMessageStat.TCP_PATCH_ROUTE_TABLE_MESSAGES,
LimeReceivedMessageStatBytes.TCP_PATCH_ROUTE_TABLE_MESSAGES,
"RECEIVED_TCP_PATCH_ROUTE_TABLE_MESSAGES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella route table messages received
* over Multicast.
*/
public static final ReceivedMessageStatHandler MULTICAST_ROUTE_TABLE_MESSAGES =
new ReceivedMessageStatHandler(ReceivedMessageStat.MULTICAST_ROUTE_TABLE_MESSAGES,
ReceivedMessageStatBytes.MULTICAST_ROUTE_TABLE_MESSAGES,
LimeReceivedMessageStat.MULTICAST_ROUTE_TABLE_MESSAGES,
LimeReceivedMessageStatBytes.MULTICAST_ROUTE_TABLE_MESSAGES,
"RECEIVED_MULTICAST_ROUTE_TABLE_MESSAGES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella filtered messages received
* over UDP.
*/
public static final ReceivedMessageStatHandler UDP_FILTERED_MESSAGES =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_FILTERED_MESSAGES,
ReceivedMessageStatBytes.UDP_FILTERED_MESSAGES,
LimeReceivedMessageStat.UDP_FILTERED_MESSAGES,
LimeReceivedMessageStatBytes.UDP_FILTERED_MESSAGES,
"RECEIVED_UDP_FILTERED_MESSAGES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella filtered messages received
* over TCP.
*/
public static final ReceivedMessageStatHandler TCP_FILTERED_MESSAGES =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_FILTERED_MESSAGES,
ReceivedMessageStatBytes.TCP_FILTERED_MESSAGES,
LimeReceivedMessageStat.TCP_FILTERED_MESSAGES,
LimeReceivedMessageStatBytes.TCP_FILTERED_MESSAGES,
"RECEIVED_TCP_FILTERED_MESSAGES");
/**
* <tt>ReceivedMessageStatHandler</tt> for Gnutella filtered messages received
* over Multicast.
*/
public static final ReceivedMessageStatHandler MULTICAST_FILTERED_MESSAGES =
new ReceivedMessageStatHandler(ReceivedMessageStat.MULTICAST_FILTERED_MESSAGES,
ReceivedMessageStatBytes.MULTICAST_FILTERED_MESSAGES,
LimeReceivedMessageStat.MULTICAST_FILTERED_MESSAGES,
LimeReceivedMessageStatBytes.MULTICAST_FILTERED_MESSAGES,
"RECEIVED_MULTICAST_FILTERED_MESSAGES");
/**
* <tt>ReceivedMessageStatHandler</tt> for duplicate queries received
* over UDP.
*/
public static final ReceivedMessageStatHandler UDP_DUPLICATE_QUERIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_DUPLICATE_QUERIES,
ReceivedMessageStatBytes.UDP_DUPLICATE_QUERIES,
LimeReceivedMessageStat.UDP_DUPLICATE_QUERIES,
LimeReceivedMessageStatBytes.UDP_DUPLICATE_QUERIES,
"RECEIVED_UDP_DUPLICATE_QUERIES");
/**
* <tt>ReceivedMessageStatHandler</tt> for duplicate queries received
* over TCP.
*/
public static final ReceivedMessageStatHandler TCP_DUPLICATE_QUERIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_DUPLICATE_QUERIES,
ReceivedMessageStatBytes.TCP_DUPLICATE_QUERIES,
LimeReceivedMessageStat.TCP_DUPLICATE_QUERIES,
LimeReceivedMessageStatBytes.TCP_DUPLICATE_QUERIES,
"RECEIVED_TCP_DUPLICATE_QUERIES");
/**
* <tt>ReceivedMessageStatHandler</tt> for duplicate queries received
* over Multicast.
*/
public static final ReceivedMessageStatHandler MULTICAST_DUPLICATE_QUERIES =
new ReceivedMessageStatHandler(ReceivedMessageStat.MULTICAST_DUPLICATE_QUERIES,
ReceivedMessageStatBytes.MULTICAST_DUPLICATE_QUERIES,
LimeReceivedMessageStat.MULTICAST_DUPLICATE_QUERIES,
LimeReceivedMessageStatBytes.MULTICAST_DUPLICATE_QUERIES,
"RECEIVED_MULTICAST_DUPLICATE_QUERIES");
public static final ReceivedMessageStatHandler UDP_LIME_ACK =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_LIME_ACK,
ReceivedMessageStatBytes.UDP_LIME_ACK,
LimeReceivedMessageStat.UDP_LIME_ACK,
LimeReceivedMessageStatBytes.UDP_LIME_ACK,
"RECEIVED_UDP_LIME_ACK");
public static final ReceivedMessageStatHandler TCP_HOPS_FLOW =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_HOPS_FLOW,
ReceivedMessageStatBytes.TCP_HOPS_FLOW,
LimeReceivedMessageStat.TCP_HOPS_FLOW,
LimeReceivedMessageStatBytes.TCP_HOPS_FLOW,
"RECEIVED_UDP_HOPS_FLOW");
public static final ReceivedMessageStatHandler TCP_TCP_CONNECTBACK =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_TCP_CONNECTBACK,
ReceivedMessageStatBytes.TCP_TCP_CONNECTBACK,
LimeReceivedMessageStat.TCP_TCP_CONNECTBACK,
LimeReceivedMessageStatBytes.TCP_TCP_CONNECTBACK,
"RECEIVED_TCP_TCP_CONNECTBACK");
public static final ReceivedMessageStatHandler TCP_UDP_CONNECTBACK =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_UDP_CONNECTBACK,
ReceivedMessageStatBytes.TCP_UDP_CONNECTBACK,
LimeReceivedMessageStat.TCP_UDP_CONNECTBACK,
LimeReceivedMessageStatBytes.TCP_UDP_CONNECTBACK,
"RECEIVED_TCP_UDP_CONNECTBACK");
public static final ReceivedMessageStatHandler TCP_MESSAGES_SUPPORTED =
new ReceivedMessageStatHandler(ReceivedMessageStat.TCP_MESSAGES_SUPPORTED,
ReceivedMessageStatBytes.TCP_MESSAGES_SUPPORTED,
LimeReceivedMessageStat.TCP_MESSAGES_SUPPORTED,
LimeReceivedMessageStatBytes.TCP_MESSAGES_SUPPORTED,
"RECEIVED_TCP_MESSAGES_SUPPORTED");
public static final ReceivedMessageStatHandler UDP_REPLY_NUMBER =
new ReceivedMessageStatHandler(ReceivedMessageStat.UDP_REPLY_NUMBER,
ReceivedMessageStatBytes.UDP_REPLY_NUMBER,
LimeReceivedMessageStat.UDP_REPLY_NUMBER,
LimeReceivedMessageStatBytes.UDP_REPLY_NUMBER,
"RECEIVED_UDP_REPLY_NUMBER");
}