import java.io.IOException;
import java.util.logging.Logger;
+import net.pterodactylus.sonitus.data.AbstractFilter;
+import net.pterodactylus.sonitus.data.DataPacket;
+import net.pterodactylus.sonitus.data.Filter;
import net.pterodactylus.sonitus.data.Metadata;
/**
* Rate limiting filter that only passes a specified amount of data per second
- * from its {@link net.pterodactylus.sonitus.data.Source} to its {@link
- * net.pterodactylus.sonitus.data.Sink}.
+ * from its source to its sinks.
*
* @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());
}
@Override
- public void process(byte[] buffer) throws IOException {
- super.process(buffer);
+ public void process(DataPacket dataPacket) throws IOException {
+ super.process(dataPacket);
/* delay. */
- counter += buffer.length;
+ counter += dataPacket.buffer().length;
long waitTime = (long) (counter / (rate / 1000.0));
while ((System.currentTimeMillis() - startTime) < waitTime) {
try {