/usr/include/boost/fiber/exceptions.hpp is in libboost1.62-dev 1.62.0+dfsg-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | //
// Copyright Oliver Kowalke 2013.
// 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)
// based on boost.thread
#ifndef BOOST_fiber_errorS_H
#define BOOST_fiber_errorS_H
#include <future>
#include <stdexcept>
#include <string>
#include <system_error>
#include <boost/config.hpp>
#include <boost/fiber/detail/config.hpp>
#ifdef BOOST_HAS_ABI_HEADERS
# include BOOST_ABI_PREFIX
#endif
namespace boost {
namespace fibers {
class fiber_error : public std::system_error {
public:
fiber_error( std::error_code ec) :
std::system_error( ec) {
}
fiber_error( std::error_code ec, const char * what_arg) :
std::system_error( ec, what_arg) {
}
fiber_error( std::error_code ec, std::string const& what_arg) :
std::system_error( ec, what_arg) {
}
virtual ~fiber_error() = default;
};
class lock_error : public fiber_error {
public:
lock_error( std::error_code ec) :
fiber_error( ec) {
}
lock_error( std::error_code ec, const char * what_arg) :
fiber_error( ec, what_arg) {
}
lock_error( std::error_code ec, std::string const& what_arg) :
fiber_error( ec, what_arg) {
}
};
enum class future_errc {
broken_promise = 1,
future_already_retrieved,
promise_already_satisfied,
no_state
};
BOOST_FIBERS_DECL
std::error_category const& future_category() noexcept;
}}
namespace std {
template<>
struct is_error_code_enum< boost::fibers::future_errc > : public true_type {
};
inline
std::error_code make_error_code( boost::fibers::future_errc e) noexcept {
return std::error_code( static_cast< int >( e), boost::fibers::future_category() );
}
inline
std::error_condition make_error_condition( boost::fibers::future_errc e) noexcept {
return std::error_condition( static_cast< int >( e), boost::fibers::future_category() );
}
}
namespace boost {
namespace fibers {
class future_error : public fiber_error {
public:
future_error( std::error_code ec) :
fiber_error( ec) {
}
};
class future_uninitialized : public future_error {
public:
future_uninitialized() :
future_error( std::make_error_code( future_errc::no_state) ) {
}
};
class future_already_retrieved : public future_error {
public:
future_already_retrieved() :
future_error( std::make_error_code( future_errc::future_already_retrieved) ) {
}
};
class broken_promise : public future_error {
public:
broken_promise() :
future_error( std::make_error_code( future_errc::broken_promise) ) {
}
};
class promise_already_satisfied : public future_error {
public:
promise_already_satisfied() :
future_error( std::make_error_code( future_errc::promise_already_satisfied) ) {
}
};
class promise_uninitialized : public future_error {
public:
promise_uninitialized() :
future_error( std::make_error_code( future_errc::no_state) ) {
}
};
class packaged_task_uninitialized : public future_error {
public:
packaged_task_uninitialized() :
future_error( std::make_error_code( future_errc::no_state) ) {
}
};
}}
#ifdef BOOST_HAS_ABI_HEADERS
# include BOOST_ABI_SUFFIX
#endif
#endif // BOOST_fiber_errorS_H
|