Move virtual methods to Queue interface
authorMaciej Piechotka <uzytkownik2@gmail.com>
Sun, 19 Aug 2012 01:22:43 +0000 (18:22 -0700)
committerMaciej Piechotka <uzytkownik2@gmail.com>
Sun, 19 Aug 2012 01:52:38 +0000 (18:52 -0700)
gee/abstractqueue.vala
gee/arrayqueue.vala
gee/priorityqueue.vala
gee/queue.vala

index 8d80f32..8cc2d3e 100644 (file)
@@ -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;
-       }
 }
index ac10a15..0e18473 100644 (file)
@@ -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 ();
        }
index db7ce4e..67c764a 100644 (file)
@@ -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;
                }
index 787f80a..3658e67 100644 (file)
@@ -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;
+       }
 }