62 lines
1.5 KiB
C++
62 lines
1.5 KiB
C++
// (C) Copyright 2008-10 Anthony Williams
|
|
// (C) Copyright 2011-2012 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_FUTURE_ERROR_CODE_HPP
|
|
#define BOOST_THREAD_FUTURE_ERROR_CODE_HPP
|
|
|
|
#include <boost/thread/detail/config.hpp>
|
|
#include <boost/detail/scoped_enum_emulation.hpp>
|
|
#include <boost/system/error_code.hpp>
|
|
#include <boost/type_traits/integral_constant.hpp>
|
|
|
|
namespace boost
|
|
{
|
|
|
|
//enum class future_errc
|
|
BOOST_SCOPED_ENUM_DECLARE_BEGIN(future_errc)
|
|
{
|
|
broken_promise = 1,
|
|
future_already_retrieved,
|
|
promise_already_satisfied,
|
|
no_state
|
|
}
|
|
BOOST_SCOPED_ENUM_DECLARE_END(future_errc)
|
|
|
|
namespace system
|
|
{
|
|
template <>
|
|
struct BOOST_SYMBOL_VISIBLE is_error_code_enum<future_errc> : public true_type {};
|
|
|
|
#ifdef BOOST_NO_CXX11_SCOPED_ENUMS
|
|
template <>
|
|
struct BOOST_SYMBOL_VISIBLE is_error_code_enum<future_errc::enum_type> : public true_type { };
|
|
#endif
|
|
} // system
|
|
|
|
BOOST_THREAD_DECL
|
|
const system::error_category& future_category() BOOST_NOEXCEPT;
|
|
|
|
namespace system
|
|
{
|
|
inline
|
|
error_code
|
|
make_error_code(future_errc e) BOOST_NOEXCEPT
|
|
{
|
|
return error_code(underlying_cast<int>(e), boost::future_category());
|
|
}
|
|
|
|
inline
|
|
error_condition
|
|
make_error_condition(future_errc e) BOOST_NOEXCEPT
|
|
{
|
|
return error_condition(underlying_cast<int>(e), future_category());
|
|
}
|
|
} // system
|
|
} // boost
|
|
|
|
#endif // header
|