diff options
Diffstat (limited to 'boost/thread/concurrent_queues/queue_base.hpp')
-rwxr-xr-x | boost/thread/concurrent_queues/queue_base.hpp | 102 |
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() {}; }; |