[libgee] Move virtual methods to Queue interface



commit 3e68cf8b769acc07082bb73ccd58e08e8a9d2c30
Author: Maciej Piechotka <uzytkownik2 gmail com>
Date:   Sat Aug 18 18:22:43 2012 -0700

    Move virtual methods to Queue interface

 gee/abstractqueue.vala |   25 -------------------------
 gee/arrayqueue.vala    |   14 +++++++-------
 gee/priorityqueue.vala |    4 ++--
 gee/queue.vala         |   15 +++++++++++++--
 4 files changed, 22 insertions(+), 36 deletions(-)
---
diff --git a/gee/abstractqueue.vala b/gee/abstractqueue.vala
index 8d80f32..8cc2d3e 100644
--- a/gee/abstractqueue.vala
+++ b/gee/abstractqueue.vala
@@ -31,13 +31,6 @@ 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; }
 
 	/**
@@ -53,28 +46,10 @@ public abstract class Gee.AbstractQueue<G> : Gee.AbstractCollection<G>, Queue<G>
 	/**
 	 * { inheritDoc}
 	 */
-	public abstract bool offer (G element);
-
-	/**
-	 * { inheritDoc}
-	 */
 	public abstract G? peek ();
 
 	/**
 	 * { inheritDoc}
 	 */
 	public abstract G? poll ();
-
-	/**
-	 * { inheritDoc}
-	 */
-	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;
-	}
 }
diff --git a/gee/arrayqueue.vala b/gee/arrayqueue.vala
index ac10a15..0e18473 100644
--- a/gee/arrayqueue.vala
+++ b/gee/arrayqueue.vala
@@ -87,6 +87,13 @@ public class Gee.ArrayQueue<G> : Gee.AbstractQueue<G>, Deque<G> {
 	/**
 	 * { inheritDoc}
 	 */
+	public override bool add (G element) {
+		return offer_tail (element);
+	}
+
+	/**
+	 * { inheritDoc}
+	 */
 	public override bool contains (G item) {
 		return find_index(item) != -1;
 	}
@@ -119,13 +126,6 @@ public class Gee.ArrayQueue<G> : Gee.AbstractQueue<G>, Deque<G> {
 	/**
 	 * { inheritDoc}
 	 */
-	public override bool offer (G element) {
-		return offer_tail (element);
-	}
-
-	/**
-	 * { inheritDoc}
-	 */
 	public override G? peek () {
 		return peek_head ();
 	}
diff --git a/gee/priorityqueue.vala b/gee/priorityqueue.vala
index db7ce4e..67c764a 100644
--- a/gee/priorityqueue.vala
+++ b/gee/priorityqueue.vala
@@ -110,7 +110,7 @@ public class Gee.PriorityQueue<G> : Gee.AbstractQueue<G> {
 	/**
 	 * { inheritDoc}
 	 */
-	public override bool offer (G element) {
+	public bool offer (G element) {
 		if (_r == null) {
 			_r = new Type1Node<G> (element);
 			_p = _r;
@@ -259,7 +259,7 @@ public class Gee.PriorityQueue<G> : Gee.AbstractQueue<G> {
 	/**
 	 * { inheritDoc}
 	 */
-	public override int drain (Collection<G> recipient, int amount = -1) {
+	public int drain (Collection<G> recipient, int amount = -1) {
 		if (amount == -1) {
 			amount = this._size;
 		}
diff --git a/gee/queue.vala b/gee/queue.vala
index 787f80a..3658e67 100644
--- a/gee/queue.vala
+++ b/gee/queue.vala
@@ -43,6 +43,7 @@
  * inserted into a Queue, as ``null`` is also used as a special return value by
  * the poll method to indicate that the queue contains no elements.
  */
+[GenericAccessors]
 public interface Gee.Queue<G> : Collection<G> {
 
 	/**
@@ -73,7 +74,9 @@ public interface Gee.Queue<G> : Collection<G> {
 	 *
 	 * @return        ``true`` if the element was added to the queue
 	 */
-	public abstract bool offer (G element);
+	public virtual bool offer (G element) {
+		return add (element);
+	}
 
 	/**
 	 * Peeks (retrieves, but not remove) an element from this queue.
@@ -100,5 +103,13 @@ public interface Gee.Queue<G> : Collection<G> {
 	 *
 	 * @return          the amount of elements that were actually drained
 	 */
-	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]