package com.limegroup.gnutella.statistics; /** * A collection of statistics for out-of-band data. */ public interface OutOfBandStatistics { /** Adds some number of requested responses. */ public void addRequestedResponse(int numRequested); /** Adds some number of bypassed responses. */ public void addBypassedResponse(int numBypassed); /** Adds some number of received responses. */ public void addReceivedResponse(int numReceived); /** Adds a single sent query. */ public void addSentQuery(); /** Returns the total number of requested responses. */ public int getRequestedResponses(); /** Returns the current sample size. */ public int getSampleSize(); /** Increments the sample size by some amount. */ public void increaseSampleSize(); /** * @return a double from 0 to 100 that signifies the OOB success percentage. */ public double getSuccessRate(); /** * @return whether or not the success rate is good enough. */ public boolean isSuccessRateGood(); /** * @return whether or not the success rate is good enough for proxying. */ public boolean isSuccessRateGreat(); /** * @return whether or not the success rate is terrible (less than 40%). */ public boolean isSuccessRateTerrible(); /** * @return A boolean if OOB queries have seemed ineffective, i.e. we've * sent several but not received ANY results. Note that this is pessimistic * and may shut off OOB even if it is working (i.e. if we've only done rare * queries). */ public boolean isOOBEffectiveForProxy(); /** * @return A boolean if OOB queries have seemed ineffective, i.e. we've * sent several but not received ANY results. Note that this is pessimistic * and may shut off OOB even if it is working (i.e. if we've only done rare * queries). */ public boolean isOOBEffectiveForMe(); }