File indexing completed on 2024-11-15 09:19:38
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOST_MYSQL_ERROR_WITH_DIAGNOSTICS_HPP
0009 #define BOOST_MYSQL_ERROR_WITH_DIAGNOSTICS_HPP
0010
0011 #include <boost/mysql/diagnostics.hpp>
0012 #include <boost/mysql/error_code.hpp>
0013
0014 #include <boost/system/system_error.hpp>
0015
0016 namespace boost {
0017 namespace mysql {
0018
0019
0020
0021
0022
0023
0024
0025 class error_with_diagnostics : public boost::system::system_error
0026 {
0027 diagnostics diag_;
0028
0029 static boost::system::system_error create_base(const error_code& err, const diagnostics& diag)
0030 {
0031 return diag.client_message().empty() ? boost::system::system_error(err)
0032 : boost::system::system_error(err, diag.client_message());
0033 }
0034
0035 public:
0036
0037 error_with_diagnostics(const error_code& err, const diagnostics& diag)
0038 : boost::system::system_error(create_base(err, diag)), diag_(diag)
0039 {
0040 }
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050 const diagnostics& get_diagnostics() const noexcept { return diag_; }
0051 };
0052
0053 }
0054 }
0055
0056 #endif