[libgee] Move virtual methods to Queue interface
- From: Maciej Marcin Piechotka <mpiechotka src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgee] Move virtual methods to Queue interface
- Date: Sun, 19 Aug 2012 02:59:21 +0000 (UTC)
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]