[libgee] Add default implementation of AbstractQueue.drain
- From: Maciej Marcin Piechotka <mpiechotka src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgee] Add default implementation of AbstractQueue.drain
- Date: Fri, 20 Jan 2012 16:22:32 +0000 (UTC)
commit 6b857c41e4f5a8c6b71bdacfa168b4f30606a5ae
Author: Maciej Piechotka <uzytkownik2 gmail com>
Date: Sat Jan 7 05:14:28 2012 +0100
Add default implementation of AbstractQueue.drain
gee/abstractqueue.vala | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
---
diff --git a/gee/abstractqueue.vala b/gee/abstractqueue.vala
index ce3fc3d..8d80f32 100644
--- a/gee/abstractqueue.vala
+++ b/gee/abstractqueue.vala
@@ -31,6 +31,13 @@ public abstract class Gee.AbstractQueue<G> : Gee.AbstractCollection<G>, Queue<G>
/**
* { inheritDoc}
*/
+ public override bool add (G item) {
+ return offer (item);
+ }
+
+ /**
+ * { inheritDoc}
+ */
public abstract int capacity { get; }
/**
@@ -61,5 +68,13 @@ public abstract class Gee.AbstractQueue<G> : Gee.AbstractCollection<G>, Queue<G>
/**
* { inheritDoc}
*/
- public abstract int drain (Collection<G> recipient, int amount = -1);
+ public virtual int drain (Collection<G> recipient, int amount = -1) {
+ G? item = null;
+ int drained = 0;
+ while((amount == -1 || --amount >= 0) && (item = poll ()) != null) {
+ recipient.add(item);
+ drained++;
+ }
+ return drained;
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]