summaryrefslogtreecommitdiff
path: root/boost/thread/concurrent_queues/queue_base.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/thread/concurrent_queues/queue_base.hpp')
-rwxr-xr-xboost/thread/concurrent_queues/queue_base.hpp102
1 files changed, 51 insertions, 51 deletions
diff --git a/boost/thread/concurrent_queues/queue_base.hpp b/boost/thread/concurrent_queues/queue_base.hpp
index 5ed14fd393..0d42839158 100755
--- a/boost/thread/concurrent_queues/queue_base.hpp
+++ b/boost/thread/concurrent_queues/queue_base.hpp
@@ -27,12 +27,12 @@ namespace concurrent
namespace detail
{
- template <typename ValueType>
+ template <typename ValueType, class SizeType>
class queue_base_copyable_only
{
public:
typedef ValueType value_type;
- typedef std::size_t size_type;
+ typedef SizeType size_type;
// Constructors/Assignment/Destructors
virtual ~queue_base_copyable_only() {};
@@ -46,28 +46,28 @@ namespace detail
// Modifiers
virtual void close() = 0;
- virtual void push_back(const value_type& x) = 0;
+ virtual void push(const value_type& x) = 0;
- virtual void pull_front(value_type&) = 0;
- virtual value_type pull_front() = 0;
+ virtual void pull(value_type&) = 0;
+ virtual value_type pull() = 0;
- virtual queue_op_status try_push_back(const value_type& x) = 0;
- virtual queue_op_status try_pull_front(value_type&) = 0;
+ virtual queue_op_status try_push(const value_type& x) = 0;
+ virtual queue_op_status try_pull(value_type&) = 0;
- virtual queue_op_status nonblocking_push_back(const value_type& x) = 0;
- virtual queue_op_status nonblocking_pull_front(value_type&) = 0;
+ virtual queue_op_status nonblocking_push(const value_type& x) = 0;
+ virtual queue_op_status nonblocking_pull(value_type&) = 0;
- virtual queue_op_status wait_push_back(const value_type& x) = 0;
- virtual queue_op_status wait_pull_front(ValueType& elem) = 0;
+ virtual queue_op_status wait_push(const value_type& x) = 0;
+ virtual queue_op_status wait_pull(ValueType& elem) = 0;
};
- template <typename ValueType>
+ template <typename ValueType, class SizeType>
class queue_base_movable_only
{
public:
typedef ValueType value_type;
- typedef std::size_t size_type;
+ typedef SizeType size_type;
// Constructors/Assignment/Destructors
virtual ~queue_base_movable_only() {};
@@ -80,29 +80,29 @@ namespace detail
// Modifiers
virtual void close() = 0;
- virtual void pull_front(value_type&) = 0;
+ virtual void pull(value_type&) = 0;
// enable_if is_nothrow_movable<value_type>
- virtual value_type pull_front() = 0;
+ virtual value_type pull() = 0;
- virtual queue_op_status try_pull_front(value_type&) = 0;
+ virtual queue_op_status try_pull(value_type&) = 0;
- virtual queue_op_status nonblocking_pull_front(value_type&) = 0;
+ virtual queue_op_status nonblocking_pull(value_type&) = 0;
- virtual queue_op_status wait_pull_front(ValueType& elem) = 0;
+ virtual queue_op_status wait_pull(value_type& elem) = 0;
- virtual void push_back(BOOST_THREAD_RV_REF(value_type) x) = 0;
- virtual queue_op_status try_push_back(BOOST_THREAD_RV_REF(value_type) x) = 0;
- virtual queue_op_status nonblocking_push_back(BOOST_THREAD_RV_REF(value_type) x) = 0;
- virtual queue_op_status wait_push_back(BOOST_THREAD_RV_REF(value_type) x) = 0;
+ virtual void push(BOOST_THREAD_RV_REF(value_type) x) = 0;
+ virtual queue_op_status try_push(BOOST_THREAD_RV_REF(value_type) x) = 0;
+ virtual queue_op_status nonblocking_push(BOOST_THREAD_RV_REF(value_type) x) = 0;
+ virtual queue_op_status wait_push(BOOST_THREAD_RV_REF(value_type) x) = 0;
};
- template <typename ValueType>
+ template <typename ValueType, class SizeType>
class queue_base_copyable_and_movable
{
public:
typedef ValueType value_type;
- typedef std::size_t size_type;
+ typedef SizeType size_type;
// Constructors/Assignment/Destructors
virtual ~queue_base_copyable_and_movable() {};
@@ -116,30 +116,30 @@ namespace detail
// Modifiers
virtual void close() = 0;
- virtual void push_back(const value_type& x) = 0;
+ virtual void push(const value_type& x) = 0;
- virtual void pull_front(value_type&) = 0;
+ virtual void pull(value_type&) = 0;
// enable_if is_nothrow_copy_movable<value_type>
- virtual value_type pull_front() = 0;
+ virtual value_type pull() = 0;
- virtual queue_op_status try_push_back(const value_type& x) = 0;
- virtual queue_op_status try_pull_front(value_type&) = 0;
+ virtual queue_op_status try_push(const value_type& x) = 0;
+ virtual queue_op_status try_pull(value_type&) = 0;
- virtual queue_op_status nonblocking_push_back(const value_type& x) = 0;
- virtual queue_op_status nonblocking_pull_front(value_type&) = 0;
+ virtual queue_op_status nonblocking_push(const value_type& x) = 0;
+ virtual queue_op_status nonblocking_pull(value_type&) = 0;
- virtual queue_op_status wait_push_back(const value_type& x) = 0;
- virtual queue_op_status wait_pull_front(ValueType& elem) = 0;
+ virtual queue_op_status wait_push(const value_type& x) = 0;
+ virtual queue_op_status wait_pull(value_type& elem) = 0;
- virtual void push_back(BOOST_THREAD_RV_REF(value_type) x) = 0;
- virtual queue_op_status try_push_back(BOOST_THREAD_RV_REF(value_type) x) = 0;
- virtual queue_op_status nonblocking_push_back(BOOST_THREAD_RV_REF(value_type) x) = 0;
- virtual queue_op_status wait_push_back(BOOST_THREAD_RV_REF(value_type) x) = 0;
+ virtual void push(BOOST_THREAD_RV_REF(value_type) x) = 0;
+ virtual queue_op_status try_push(BOOST_THREAD_RV_REF(value_type) x) = 0;
+ virtual queue_op_status nonblocking_push(BOOST_THREAD_RV_REF(value_type) x) = 0;
+ virtual queue_op_status wait_push(BOOST_THREAD_RV_REF(value_type) x) = 0;
};
- template <class T,
+ template <class T, class ST,
#if ! defined BOOST_NO_CXX11_RVALUE_REFERENCES
-#if defined __GNUC__
+#if defined __GNUC__ && ! defined __clang__
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
bool Copyable = is_copy_constructible<T>::value,
bool Movable = true
@@ -166,28 +166,28 @@ namespace detail
>
struct queue_base;
- template <class T>
- struct queue_base<T, true, true> {
- typedef queue_base_copyable_and_movable<T> type;
+ template <class T, class ST>
+ struct queue_base<T, ST, true, true> {
+ typedef queue_base_copyable_and_movable<T, ST> type;
};
- template <class T>
- struct queue_base<T, true, false> {
- typedef queue_base_copyable_only<T> type;
+ template <class T, class ST>
+ struct queue_base<T, ST, true, false> {
+ typedef queue_base_copyable_only<T, ST> type;
};
- template <class T>
- struct queue_base<T, false, true> {
- typedef queue_base_movable_only<T> type;
+ template <class T, class ST>
+ struct queue_base<T, ST, false, true> {
+ typedef queue_base_movable_only<T, ST> type;
};
}
- template <typename ValueType>
+ template <typename ValueType, class SizeType=std::size_t>
class queue_base :
- public detail::queue_base<ValueType>::type
+ public detail::queue_base<ValueType, SizeType>::type
{
public:
typedef ValueType value_type;
- typedef std::size_t size_type;
+ typedef SizeType size_type;
// Constructors/Assignment/Destructors
virtual ~queue_base() {};
};