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 |