package com.limegroup.gnutella.statistics; import com.limegroup.gnutella.messages.Message; /** * This class is a convenient wrapper for any class that keeps track of * ttl and hops for a Gnutella message. */ public final class TTLHopsRecorder { /** * Constructs a new <tt>TTLHopsRecorder</tt> instance with the specified * message identifier name for deriving the file name to use when * writing statistics data out to files. */ TTLHopsRecorder(final String NAME) { TTL0 = new GeneralStatHandler(NAME+"_TTL0"); TTL1 = new GeneralStatHandler(NAME+"_TTL1"); TTL2 = new GeneralStatHandler(NAME+"_TTL2"); TTL3 = new GeneralStatHandler(NAME+"_TTL3"); TTL4 = new GeneralStatHandler(NAME+"_TTL4"); TTL5 = new GeneralStatHandler(NAME+"_TTL5"); TTL6 = new GeneralStatHandler(NAME+"_TTL6"); TTL7 = new GeneralStatHandler(NAME+"_TTL7"); TTL8 = new GeneralStatHandler(NAME+"_TTL8"); HOPS0 = new GeneralStatHandler(NAME+"_HOPS0"); HOPS1 = new GeneralStatHandler(NAME+"_HOPS1"); HOPS2 = new GeneralStatHandler(NAME+"_HOPS2"); HOPS3 = new GeneralStatHandler(NAME+"_HOPS3"); HOPS4 = new GeneralStatHandler(NAME+"_HOPS4"); HOPS5 = new GeneralStatHandler(NAME+"_HOPS5"); HOPS6 = new GeneralStatHandler(NAME+"_HOPS6"); HOPS7 = new GeneralStatHandler(NAME+"_HOPS7"); HOPS8 = new GeneralStatHandler(NAME+"_HOPS8"); } /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 0 * messages. */ public final AbstractStatHandler TTL0; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 1 * messages. */ public final AbstractStatHandler TTL1; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 2 * messages. */ public final AbstractStatHandler TTL2; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 3 * messages. */ public final AbstractStatHandler TTL3; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 4 * messages. */ public final AbstractStatHandler TTL4; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 5 * messages. */ public final AbstractStatHandler TTL5; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 6 * messages. */ public final AbstractStatHandler TTL6; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 7 * messages. */ public final AbstractStatHandler TTL7; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of ttl = 8 * messages. */ public final AbstractStatHandler TTL8; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 0 * messages. */ public final AbstractStatHandler HOPS0; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 1 * messages. */ public final AbstractStatHandler HOPS1; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 2 * messages. */ public final AbstractStatHandler HOPS2; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 3 * messages. */ public final AbstractStatHandler HOPS3; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 4 * messages. */ public final AbstractStatHandler HOPS4; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 5 * messages. */ public final AbstractStatHandler HOPS5; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 6 * messages. */ public final AbstractStatHandler HOPS6; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 7 * messages. */ public final AbstractStatHandler HOPS7; /** * Constant for the <tt>AbstractStatHandler</tt> that keeps track of hops = 8 * messages. */ public final AbstractStatHandler HOPS8; public void addMessage(Message msg) { int ttl = msg.getTTL(); switch(ttl) { case 0: TTL0.addMessage(msg); break; case 1: TTL1.addMessage(msg); break; case 2: TTL2.addMessage(msg); break; case 3: TTL3.addMessage(msg); break; case 4: TTL4.addMessage(msg); break; case 5: TTL5.addMessage(msg); break; case 6: TTL6.addMessage(msg); break; case 7: TTL7.addMessage(msg); break; case 8: TTL8.addMessage(msg); break; default: break; } int hops = msg.getHops(); switch(hops) { case 0: HOPS0.addMessage(msg); break; case 1: HOPS1.addMessage(msg); break; case 2: HOPS2.addMessage(msg); break; case 3: HOPS3.addMessage(msg); break; case 4: HOPS4.addMessage(msg); break; case 5: HOPS5.addMessage(msg); break; case 6: HOPS6.addMessage(msg); break; case 7: HOPS7.addMessage(msg); break; case 8: HOPS8.addMessage(msg); break; default: break; } } }