package com.limegroup.gnutella.filters;
import com.limegroup.gnutella.messages.Message;
/**
* A filter to eliminate Gnutella spam. Subclass to implement custom
* filters. Each Gnutella connection has two SpamFilters; the
* personal filter (for filtering results and the search monitor) and
* a route filter (for deciding what I even consider). (Strategy
* pattern.) Note that a packet stopped by the route filter will
* never reach the personal filter.<p>
*/
public interface SpamFilter {
/**
* Returns true iff this is considered spam and should not be processed.
*/
boolean allow(Message m);
/**
* Defines an interface for being informed when a filter finishes loading.
*/
interface LoadCallback {
void spamFilterLoaded();
}
}