Wrapper for Clustal Omega.
[jabaws.git] / binaries / src / clustalo / src / clustal / queue.h
diff --git a/binaries/src/clustalo/src/clustal/queue.h b/binaries/src/clustalo/src/clustal/queue.h
new file mode 100644 (file)
index 0000000..7140740
--- /dev/null
@@ -0,0 +1,75 @@
+/*********************************************************************
+ * Clustal Omega - Multiple sequence alignment
+ *
+ * Copyright (C) 2010 University College Dublin
+ *
+ * Clustal-Omega is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This file is part of Clustal-Omega.
+ *
+ ********************************************************************/
+
+/*
+ * RCS $Id: queue.h 193 2011-02-07 15:45:21Z andreas $
+ *
+ * Functions/Macros for FIFOs/Queues
+ *
+ */
+
+#ifndef CLUSTALO_QUEUE_H
+#define CLUSTALO_QUEUE_H
+
+#include "list.h"
+
+
+
+/*  FIFO/Queue as list_t, storing data pointers
+ * 
+ */
+
+typedef list_t queue_t;
+
+/* setup queue */
+#define QUEUE_INIT(prQueue, destroy_func) ListInit((prQueue), (destroy_func))
+
+/* free all elements from queue */
+#define QUEUE_DESTROY(prQueue) ListDestroy((prQueue))
+
+/* enqueue */
+#define QUEUE_PUSH(prQueue, data) LIST_APPEND((prQueue), (data))
+
+/* dequeue */
+#define QUEUE_POP(prQueue, data) ListRemoveNext((prQueue), NULL, (data))
+
+/* is queue empty ? */
+#define QUEUE_EMPTY(prQueue) (0==LIST_SIZE((prQueue)))
+
+
+
+/* Special int FIF/Queue, storing ints by copying them instead of
+ * keeping pointers only
+ */
+
+typedef queue_t int_queue_t;
+
+/* setup queue */
+#define INT_QUEUE_INIT(prQueue) INT_LIST_INIT((prQueue))
+
+/* free all elements from queue */
+#define INT_QUEUE_DESTROY(prQueue) INT_LIST_DESTROY((prQueue))
+
+/* enqueue */
+#define INT_QUEUE_PUSH(prQueue, data) INT_LIST_APPEND((prQueue), (data))
+
+/* dequeue */
+#define INT_QUEUE_POP(prQueue, data) IntListRemoveNext((prQueue), NULL, (data))
+
+/* is queue empty ? */
+#define INT_QUEUE_EMPTY(prQueue) (0==INT_LIST_SIZE((prQueue)))
+
+
+
+#endif