import java.io.IOException;
import java.util.logging.Logger;
+import net.pterodactylus.sonitus.data.AbstractFilter;
+import net.pterodactylus.sonitus.data.Filter;
import net.pterodactylus.sonitus.data.Metadata;
-import com.google.common.eventbus.EventBus;
-
/**
* Rate limiting filter that only passes a specified amount of data per second
* from its {@link net.pterodactylus.sonitus.data.Source} to its {@link
*
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
-public class RateLimitingFilter extends DummyFilter {
+public class RateLimitingFilter extends AbstractFilter implements Filter {
/** The logger. */
private static final Logger logger = Logger.getLogger(RateLimitingFilter.class.getName());
/**
* Creates a new rate limiting filter.
*
- * @param eventBus
- * The event bus
* @param name
* The name of the filter
* @param rate
- * The limiting rate (in bytes/second)
*/
- public RateLimitingFilter(EventBus eventBus, String name, int rate) {
- this(eventBus, name, rate, 0);
+ public RateLimitingFilter(String name, int rate) {
+ this(name, rate, 0);
}
/**
* Creates a new rate limiting filter.
*
- * @param eventBus
- * The event bus
* @param name
* The name of the filter
* @param rate
* The limiting rate (in bytes/second)
* @param fastStartTime
* The amount of time at the start of the filtering during which no delay
- * will occur (in milliseconds)
*/
- public RateLimitingFilter(EventBus eventBus, String name, int rate, long fastStartTime) {
- super(eventBus, name);
+ public RateLimitingFilter(String name, int rate, long fastStartTime) {
+ super(name);
this.rate = rate;
this.counter = (long) (-rate * (fastStartTime / 1000.0));
}