From c965a3dca05a5329e899da37f4ef17dc6b675e7e Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 2 Sep 2012 14:41:21 +0000
Subject: [PATCH] add drainAllTo()

---
 .../src/net/i2p/router/util/CoDelBlockingQueue.java | 13 +++++++++++++
 .../i2p/router/util/CoDelPriorityBlockingQueue.java | 13 +++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/router/java/src/net/i2p/router/util/CoDelBlockingQueue.java b/router/java/src/net/i2p/router/util/CoDelBlockingQueue.java
index b04a3a9635..4d7920546c 100644
--- a/router/java/src/net/i2p/router/util/CoDelBlockingQueue.java
+++ b/router/java/src/net/i2p/router/util/CoDelBlockingQueue.java
@@ -128,6 +128,9 @@ public class CoDelBlockingQueue<E extends CDQEntry> extends LinkedBlockingQueue<
         return codel(rv);
     }
 
+    /**
+     *  Updates stats and possibly drops while draining.
+     */
     @Override
     public int drainTo(Collection<? super E> c) {
         int rv = 0;
@@ -139,6 +142,9 @@ public class CoDelBlockingQueue<E extends CDQEntry> extends LinkedBlockingQueue<
         return rv;
     }
 
+    /**
+     *  Updates stats and possibly drops while draining.
+     */
     @Override
     public int drainTo(Collection<? super E> c, int maxElements) {
         int rv = 0;
@@ -149,6 +155,13 @@ public class CoDelBlockingQueue<E extends CDQEntry> extends LinkedBlockingQueue<
         return rv;
     }
 
+    /**
+     *  Drains all, without updating stats or dropping.
+     */
+    public int drainAllTo(Collection<? super E> c) {
+        return super.drainTo(c);
+    }
+
     /////// private below here
 
     /**
diff --git a/router/java/src/net/i2p/router/util/CoDelPriorityBlockingQueue.java b/router/java/src/net/i2p/router/util/CoDelPriorityBlockingQueue.java
index 0224f5463b..59e8fc9786 100644
--- a/router/java/src/net/i2p/router/util/CoDelPriorityBlockingQueue.java
+++ b/router/java/src/net/i2p/router/util/CoDelPriorityBlockingQueue.java
@@ -139,6 +139,9 @@ public class CoDelPriorityBlockingQueue<E extends CDPQEntry> extends PriorityBlo
         return codel(rv);
     }
 
+    /**
+     *  Updates stats and possibly drops while draining.
+     */
     @Override
     public int drainTo(Collection<? super E> c) {
         int rv = 0;
@@ -150,6 +153,9 @@ public class CoDelPriorityBlockingQueue<E extends CDPQEntry> extends PriorityBlo
         return rv;
     }
 
+    /**
+     *  Updates stats and possibly drops while draining.
+     */
     @Override
     public int drainTo(Collection<? super E> c, int maxElements) {
         int rv = 0;
@@ -160,6 +166,13 @@ public class CoDelPriorityBlockingQueue<E extends CDPQEntry> extends PriorityBlo
         return rv;
     }
 
+    /**
+     *  Drains all, without updating stats or dropping.
+     */
+    public int drainAllTo(Collection<? super E> c) {
+        return super.drainTo(c);
+    }
+
     /////// private below here
 
     private void timestamp(E o) {
-- 
GitLab