| // Copyright (C) 2001-2003 |
| // William E. Kempf |
| // Copyright (C) 2007-9 Anthony Williams |
| // |
| // Distributed under the Boost Software License, Version 1.0. (See accompanying |
| // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| |
| #ifndef BOOST_THREAD_EXCEPTIONS_PDM070801_H |
| #define BOOST_THREAD_EXCEPTIONS_PDM070801_H |
| |
| #include <boost/thread/detail/config.hpp> |
| |
| // pdm: Sorry, but this class is used all over the place & I end up |
| // with recursive headers if I don't separate it |
| // wek: Not sure why recursive headers would cause compilation problems |
| // given the include guards, but regardless it makes sense to |
| // seperate this out any way. |
| |
| #include <string> |
| #include <stdexcept> |
| |
| #include <boost/config/abi_prefix.hpp> |
| |
| namespace boost |
| { |
| |
| class thread_interrupted |
| {}; |
| |
| class thread_exception: |
| public std::exception |
| { |
| protected: |
| thread_exception(): |
| m_sys_err(0) |
| {} |
| |
| thread_exception(int sys_err_code): |
| m_sys_err(sys_err_code) |
| {} |
| |
| |
| public: |
| ~thread_exception() throw() |
| {} |
| |
| |
| int native_error() const |
| { |
| return m_sys_err; |
| } |
| |
| |
| private: |
| int m_sys_err; |
| }; |
| |
| class condition_error: |
| public std::exception |
| { |
| public: |
| const char* what() const throw() |
| { |
| return "Condition error"; |
| } |
| }; |
| |
| |
| class lock_error: |
| public thread_exception |
| { |
| public: |
| lock_error() |
| {} |
| |
| lock_error(int sys_err_code): |
| thread_exception(sys_err_code) |
| {} |
| |
| ~lock_error() throw() |
| {} |
| |
| |
| virtual const char* what() const throw() |
| { |
| return "boost::lock_error"; |
| } |
| }; |
| |
| class thread_resource_error: |
| public thread_exception |
| { |
| public: |
| thread_resource_error() |
| {} |
| |
| thread_resource_error(int sys_err_code): |
| thread_exception(sys_err_code) |
| {} |
| |
| ~thread_resource_error() throw() |
| {} |
| |
| |
| virtual const char* what() const throw() |
| { |
| return "boost::thread_resource_error"; |
| } |
| |
| }; |
| |
| class unsupported_thread_option: |
| public thread_exception |
| { |
| public: |
| unsupported_thread_option() |
| {} |
| |
| unsupported_thread_option(int sys_err_code): |
| thread_exception(sys_err_code) |
| {} |
| |
| ~unsupported_thread_option() throw() |
| {} |
| |
| |
| virtual const char* what() const throw() |
| { |
| return "boost::unsupported_thread_option"; |
| } |
| |
| }; |
| |
| class invalid_thread_argument: |
| public thread_exception |
| { |
| public: |
| invalid_thread_argument() |
| {} |
| |
| invalid_thread_argument(int sys_err_code): |
| thread_exception(sys_err_code) |
| {} |
| |
| ~invalid_thread_argument() throw() |
| {} |
| |
| |
| virtual const char* what() const throw() |
| { |
| return "boost::invalid_thread_argument"; |
| } |
| |
| }; |
| |
| class thread_permission_error: |
| public thread_exception |
| { |
| public: |
| thread_permission_error() |
| {} |
| |
| thread_permission_error(int sys_err_code): |
| thread_exception(sys_err_code) |
| {} |
| |
| ~thread_permission_error() throw() |
| {} |
| |
| |
| virtual const char* what() const throw() |
| { |
| return "boost::thread_permission_error"; |
| } |
| |
| }; |
| |
| } // namespace boost |
| |
| #include <boost/config/abi_suffix.hpp> |
| |
| #endif |