summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:48:11 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:48:11 +0000
commit1c2df9a2458897ff6c2393913b2723457e42a0da (patch)
tree69652a0305830b4472f39c55ad1168522d8301f1 /sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h
parente5d978186780787e8dad6681cca139486df93643 (diff)
Simplified the automake build using configure options instead of environment variables and cleaned up some of the makefile.am files. Adjusted build instructions. Moved directories that don't yet build or work out of the main build dir and obsolete docs to a contrib dir.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@883254 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h')
-rw-r--r--sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h
new file mode 100644
index 0000000000..e2ff104631
--- /dev/null
+++ b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev: 492011 $ $Date: 2007-01-02 18:15:11 -0800 (Tue, 02 Jan 2007) $ */
+
+#ifndef tuscany_sca_util_queue_h
+#define tuscany_sca_util_queue_h
+
+#if defined(WIN32) || defined (_WINDOWS)
+#include <windows.h>
+#else
+#include <pthread.h>
+#endif
+
+#include <queue>
+
+#include "tuscany/sca/export.h"
+
+
+namespace tuscany
+{
+ namespace sca
+ {
+ namespace util
+ {
+ /**
+ * A thread safe FIFO queue.
+ */
+ class SCA_API Queue
+ {
+ public:
+ /**
+ * Constructor.
+ */
+ Queue();
+
+ /**
+ * Destructor.
+ */
+ virtual ~Queue();
+
+ /**
+ * Dequeue an element
+ */
+ void* dequeue();
+
+ /**
+ * Enqueue an element
+ */
+ void enqueue(void* element);
+
+ private:
+
+ /**
+ * The STL queue used to hold elements.
+ */
+ std::queue<void*> queue;
+
+ /**
+ * Handles to the mutex and condition variable
+ * used to synchronize access to the queue.
+ */
+#if defined(WIN32) || defined (_WINDOWS)
+ CRITICAL_SECTION section;
+ HANDLE hevent;
+#else
+ pthread_mutex_t mutex;
+ pthread_cond_t cond;
+#endif
+
+ };
+
+ } // End namespace util
+ } // End namespace sca
+} // End namespace tuscany
+
+#endif // tuscany_sca_util_queue_h