99 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| //  (C) Copyright 2008-10 Anthony Williams
 | |
| //  (C) Copyright 2011-2015 Vicente J. Botet Escriba
 | |
| //
 | |
| //  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_FUTURES_FUTURE_ERROR_HPP
 | |
| #define BOOST_THREAD_FUTURES_FUTURE_ERROR_HPP
 | |
| 
 | |
| #include <boost/thread/detail/config.hpp>
 | |
| 
 | |
| #include <boost/thread/futures/future_error_code.hpp>
 | |
| #include <boost/system/error_code.hpp>
 | |
| 
 | |
| #include <stdexcept>
 | |
| 
 | |
| namespace boost
 | |
| {
 | |
|   class BOOST_SYMBOL_VISIBLE future_error
 | |
|       : public std::logic_error
 | |
|   {
 | |
|       system::error_code ec_;
 | |
|   public:
 | |
|       future_error(system::error_code ec)
 | |
|       : logic_error(ec.message()),
 | |
|         ec_(ec)
 | |
|       {
 | |
|       }
 | |
| 
 | |
|       const system::error_code& code() const BOOST_NOEXCEPT
 | |
|       {
 | |
|         return ec_;
 | |
|       }
 | |
|   };
 | |
| 
 | |
|     class BOOST_SYMBOL_VISIBLE future_uninitialized:
 | |
|         public future_error
 | |
|     {
 | |
|     public:
 | |
|         future_uninitialized() :
 | |
|           future_error(system::make_error_code(future_errc::no_state))
 | |
|         {}
 | |
|     };
 | |
|     class BOOST_SYMBOL_VISIBLE broken_promise:
 | |
|         public future_error
 | |
|     {
 | |
|     public:
 | |
|         broken_promise():
 | |
|           future_error(system::make_error_code(future_errc::broken_promise))
 | |
|         {}
 | |
|     };
 | |
|     class BOOST_SYMBOL_VISIBLE future_already_retrieved:
 | |
|         public future_error
 | |
|     {
 | |
|     public:
 | |
|         future_already_retrieved():
 | |
|           future_error(system::make_error_code(future_errc::future_already_retrieved))
 | |
|         {}
 | |
|     };
 | |
|     class BOOST_SYMBOL_VISIBLE promise_already_satisfied:
 | |
|         public future_error
 | |
|     {
 | |
|     public:
 | |
|         promise_already_satisfied():
 | |
|           future_error(system::make_error_code(future_errc::promise_already_satisfied))
 | |
|         {}
 | |
|     };
 | |
| 
 | |
|     class BOOST_SYMBOL_VISIBLE task_already_started:
 | |
|         public future_error
 | |
|     {
 | |
|     public:
 | |
|         task_already_started():
 | |
|         future_error(system::make_error_code(future_errc::promise_already_satisfied))
 | |
|         {}
 | |
|     };
 | |
| 
 | |
|     class BOOST_SYMBOL_VISIBLE task_moved:
 | |
|         public future_error
 | |
|     {
 | |
|     public:
 | |
|         task_moved():
 | |
|           future_error(system::make_error_code(future_errc::no_state))
 | |
|         {}
 | |
|     };
 | |
| 
 | |
|     class promise_moved:
 | |
|         public future_error
 | |
|     {
 | |
|     public:
 | |
|           promise_moved():
 | |
|           future_error(system::make_error_code(future_errc::no_state))
 | |
|         {}
 | |
|     };
 | |
| }
 | |
| 
 | |
| #endif // header
 | 
