]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/compute/include/boost/compute/exception/unsupported_extension_error.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / compute / include / boost / compute / exception / unsupported_extension_error.hpp
1 //---------------------------------------------------------------------------//
2 // Copyright (c) 2013-2014 Kyle Lutz <kyle.r.lutz@gmail.com>
3 //
4 // Distributed under the Boost Software License, Version 1.0
5 // See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt
7 //
8 // See http://boostorg.github.com/compute for more information.
9 //---------------------------------------------------------------------------//
10
11 #ifndef BOOST_COMPUTE_EXCEPTION_UNSUPPORTED_EXTENSION_ERROR_HPP
12 #define BOOST_COMPUTE_EXCEPTION_UNSUPPORTED_EXTENSION_ERROR_HPP
13
14 #include <exception>
15 #include <sstream>
16 #include <string>
17
18 namespace boost {
19 namespace compute {
20
21 /// \class unsupported_extension_error
22 /// \brief Exception thrown when attempting to use an unsupported
23 /// OpenCL extension.
24 ///
25 /// This exception is thrown when the user attempts to use an OpenCL
26 /// extension which is not supported on the platform and/or device.
27 ///
28 /// An example of this is attempting to use CL-GL sharing on a non-GPU
29 /// device.
30 ///
31 /// \see opencl_error
32 class unsupported_extension_error : public std::exception
33 {
34 public:
35 /// Creates a new unsupported extension error exception object indicating
36 /// that \p extension is not supported by the OpenCL platform or device.
37 explicit unsupported_extension_error(const char *extension) throw()
38 : m_extension(extension)
39 {
40 std::stringstream msg;
41 msg << "OpenCL extension " << extension << " not supported";
42 m_error_string = msg.str();
43 }
44
45 /// Destroys the unsupported extension error object.
46 ~unsupported_extension_error() throw()
47 {
48 }
49
50 /// Returns the name of the unsupported extension.
51 std::string extension_name() const throw()
52 {
53 return m_extension;
54 }
55
56 /// Returns a string containing a human-readable error message containing
57 /// the name of the unsupported exception.
58 const char* what() const throw()
59 {
60 return m_error_string.c_str();
61 }
62
63 private:
64 std::string m_extension;
65 std::string m_error_string;
66 };
67
68 } // end compute namespace
69 } // end boost namespace
70
71 #endif // BOOST_COMPUTE_EXCEPTION_UNSUPPORTED_EXTENSION_ERROR_HPP