added peek functions
authorjjenista <jjenista>
Wed, 5 Aug 2009 00:12:01 +0000 (00:12 +0000)
committerjjenista <jjenista>
Wed, 5 Aug 2009 00:12:01 +0000 (00:12 +0000)
Robust/src/Runtime/Queue.c
Robust/src/Runtime/Queue.h

index adb35e8dad35a69f498cdb587cc6c91959ba8595..ff4dba8a7dcf77889e7c86833417d4babe474a30 100644 (file)
@@ -73,6 +73,18 @@ struct QueueItem * addNewItem_I(struct Queue * queue, void * ptr) {
 }
 #endif
 
+struct QueueItem * getTail(struct Queue * queue) {
+  return queue->tail;
+}
+
+struct QueueItem * getHead(struct Queue * queue) {
+  return queue->head;
+}
+
+struct QueueItem * getNextQueueItem(struct QueueItem * qi) {
+  return qi->next;
+}
+
 struct QueueItem * findItem(struct Queue * queue, void *ptr) {
   struct QueueItem * item=queue->head;
   while(item!=NULL) {
@@ -97,18 +109,6 @@ void removeItem(struct Queue * queue, struct QueueItem * item) {
   RUNFREE(item);
 }
 
-struct QueueItem * getTail(struct Queue * queue) {
-  return queue->tail;
-}
-
-struct QueueItem * getHead(struct Queue * queue) {
-  return queue->head;
-}
-
-struct QueueItem * getNextQueueItem(struct QueueItem * qi) {
-  return qi->next;
-}
-
 void * getItem(struct Queue * queue) {
   struct QueueItem * q=queue->head;
   void * ptr=q->objectptr;
@@ -138,6 +138,18 @@ void * getItemBack(struct Queue * queue) {
   return ptr;
 }
 
+void * peekItem(struct Queue * queue) {
+  struct QueueItem * q=queue->head;
+  void * ptr=q->objectptr;
+  return ptr;
+}
+
+void * peekItemBack(struct Queue * queue) {
+  struct QueueItem * q=queue->tail;
+  void * ptr=q->objectptr;
+  return ptr;
+}
+
 #ifdef DEBUG_QUEUE
 int assertQueue(struct Queue * queue) {
 
index 2e11bc64bc36152ed533640b7c3be6cf39260bd3..d0617e28e5fd8a53acbf13d1ea64bda194b359cf 100644 (file)
@@ -15,22 +15,28 @@ struct QueueItem {
 
 #define isEmpty(x) ((x)->head==NULL)
 
-void * getItem(struct Queue * queue);
-void freeQueue(struct Queue * q);
 struct Queue * createQueue();
+void freeQueue(struct Queue * q);
+
 struct QueueItem * addNewItem(struct Queue * queue, void * ptr);
+struct QueueItem * addNewItemBack(struct Queue * queue, void * ptr);
 #ifdef MULTICORE
 struct QueueItem * addNewItem_I(struct Queue * queue, void * ptr);
 #endif
-struct QueueItem * findItem(struct Queue * queue, void * ptr);
-void removeItem(struct Queue * queue, struct QueueItem * item);
+
 struct QueueItem * getTail(struct Queue * queue);
 struct QueueItem * getHead(struct Queue * queue);
 struct QueueItem * getNextQueueItem(struct QueueItem * qi);
 
-// to implement a double-ended queue
+struct QueueItem * findItem(struct Queue * queue, void * ptr);
+
+void removeItem(struct Queue * queue, struct QueueItem * item);
+
+void * getItem(struct Queue * queue);
 void * getItemBack(struct Queue * queue);
-struct QueueItem * addNewItemBack(struct Queue * queue, void * ptr);
+
+void * peekItem(struct Queue * queue);
+void * peekItemBack(struct Queue * queue);
 
 
 // for debugging, only included if macro is defined