4 #include <boost/exception/all.hpp>
\r
5 #include <boost/exception/errinfo_file_name.hpp>
\r
6 #include <boost/throw_exception.hpp>
\r
10 typedef boost::error_info<struct tag_arg_name_info, std::string> arg_name_info;
\r
11 typedef boost::error_info<struct tag_arg_value_info, std::string> arg_value_info;
\r
12 typedef boost::error_info<struct tag_arg_name_info, std::wstring> warg_name_info;
\r
13 typedef boost::error_info<struct tag_arg_value_info, std::wstring> warg_value_info;
\r
14 typedef boost::error_info<struct tag_msg_info, std::string> msg_info;
\r
15 typedef boost::error_info<struct tag_inner_info, std::exception_ptr> inner_info;
\r
16 typedef boost::error_info<struct tag_line_info, int> line_info;
\r
18 struct caspar_exception : virtual boost::exception, virtual std::exception {};
\r
20 struct io_error : virtual caspar_exception {};
\r
21 struct directory_not_found : virtual io_error {};
\r
22 struct file_not_found : virtual io_error {};
\r
23 struct file_read_error : virtual io_error {};
\r
25 struct invalid_argument : virtual caspar_exception {};
\r
26 struct null_argument : virtual invalid_argument {};
\r
27 struct out_of_range : virtual invalid_argument {};
\r
29 struct invalid_operation : virtual caspar_exception {};
\r
30 struct operation_failed : virtual caspar_exception {};
\r
32 struct not_supported : virtual caspar_exception {};
\r
33 struct not_implemented : virtual caspar_exception {};
\r
40 inline bool operator!=(const std::exception_ptr& lhs, const std::exception_ptr& rhs)
\r
42 return !(lhs == rhs);
\r
45 inline bool operator!=(const std::exception_ptr& lhs, std::nullptr_t)
\r
47 return !(lhs == nullptr);
\r
50 inline bool operator!=(std::nullptr_t, const std::exception_ptr& rhs)
\r
52 return !(nullptr == rhs);
\r