package com.limegroup.gnutella.downloader; /** * Used to track statistics about the way clients connect to peers for downloads * (i.e., direct or push), and why pushes are done. */ public interface DownloadStatsTracker { /** * Increment a counter indicating connecting directly succeeded. */ void successfulDirectConnect(); /** * Increment a counter indicating connecting directly failed. */ void failedDirectConnect(); /** * Increment a counter indicating connecting with a push succeeded. */ void successfulPushConnect(); /** * Increment a counter indicating connecting directly failed. */ void failedPushConnect(); /** * Increment a counter corresponding to a particular reasons for * attempting to connect via a push. */ void increment(PushReason reason); /** * An enumeration of the reasons for doing a push, as opposed to connecting directly. */ public enum PushReason {DIRECT_FAILED, MULTICAST_REPLY, PRIVATE_NETWORK, INVALID_PORT, FIREWALL} }