summaryrefslogtreecommitdiffstats
path: root/src/uscxml/concurrency/BlockingQueue.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/concurrency/BlockingQueue.h')
-rw-r--r--src/uscxml/concurrency/BlockingQueue.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/uscxml/concurrency/BlockingQueue.h b/src/uscxml/concurrency/BlockingQueue.h
deleted file mode 100644
index e53de25..0000000
--- a/src/uscxml/concurrency/BlockingQueue.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * @file
- * @author 2012-2013 Stefan Radomski (stefan.radomski@cs.tu-darmstadt.de)
- * @copyright Simplified BSD
- *
- * @cond
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the FreeBSD license as published by the FreeBSD
- * project.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * You should have received a copy of the FreeBSD license along with this
- * program. If not, see <http://www.opensource.org/licenses/bsd-license>.
- * @endcond
- */
-
-#ifndef BLOCKINGQUEUE_H_4LEVMY0N
-#define BLOCKINGQUEUE_H_4LEVMY0N
-
-#include "uscxml/Common.h"
-#include "uscxml/concurrency/tinythread.h"
-#include <list>
-
-namespace uscxml {
-namespace concurrency {
-
-template <class T>
-class BlockingQueue {
-public:
- BlockingQueue() {}
- virtual ~BlockingQueue() {
- }
-
- virtual void push(const T& elem) {
- tthread::lock_guard<tthread::mutex> lock(_mutex);
- _queue.push_back(elem);
- _cond.notify_all();
- }
-
- virtual void push_front(const T& elem) {
- tthread::lock_guard<tthread::mutex> lock(_mutex);
- _queue.push_front(elem);
- _cond.notify_all();
- }
-
- virtual T pop() {
- tthread::lock_guard<tthread::mutex> lock(_mutex);
-// std::cout << "Popping from " << this << std::endl;
- while (_queue.empty()) {
- _cond.wait(_mutex);
- }
- T ret = _queue.front();
- _queue.pop_front();
- return ret;
- }
-
- virtual void clear() {
- tthread::lock_guard<tthread::mutex> lock(_mutex);
- _queue.clear();
- }
-
- virtual bool isEmpty() {
- tthread::lock_guard<tthread::mutex> lock(_mutex);
- return _queue.empty();
- }
-
-protected:
- tthread::mutex _mutex;
- tthread::condition_variable _cond;
- std::list<T> _queue;
-};
-
-}
-}
-
-#endif /* end of include guard: BLOCKINGQUEUE_H_4LEVMY0N */