X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2Ffilter%2FRateLimitingFilter.java;h=ff1a2f2b9f72dee8233f32aebd9801a40e5a1600;hb=eacf380129e247dd03f7d054d67e34cb43658959;hp=fc89a50c2882f391c4fb1a156c7df1a2d5200512;hpb=09f8bd2297dc864e24baa67c65be97104e00c320;p=sonitus.git diff --git a/src/main/java/net/pterodactylus/sonitus/data/filter/RateLimitingFilter.java b/src/main/java/net/pterodactylus/sonitus/data/filter/RateLimitingFilter.java index fc89a50..ff1a2f2 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/filter/RateLimitingFilter.java +++ b/src/main/java/net/pterodactylus/sonitus/data/filter/RateLimitingFilter.java @@ -20,16 +20,18 @@ package net.pterodactylus.sonitus.data.filter; 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 David ‘Bombe’ Roden */ -public class RateLimitingFilter extends DummyFilter { +public class RateLimitingFilter extends AbstractFilter implements Filter { /** The logger. */ private static final Logger logger = Logger.getLogger(RateLimitingFilter.class.getName()); @@ -49,7 +51,6 @@ public class RateLimitingFilter extends DummyFilter { * @param name * The name of the filter * @param rate - * The limiting rate (in bytes/second) */ public RateLimitingFilter(String name, int rate) { this(name, rate, 0); @@ -64,7 +65,6 @@ public class RateLimitingFilter extends DummyFilter { * 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(String name, int rate, long fastStartTime) { super(name); @@ -83,10 +83,10 @@ public class RateLimitingFilter extends DummyFilter { } @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 {