73#    include <boost/exception/diagnostic_information.hpp> 
   80UHD_API std::string get_c_global_error_string();
 
   82UHD_API void set_c_global_error_string(
const std::string& msg);
 
   89#    define UHD_SAFE_C(...)                                              \ 
   92        } catch (const uhd::exception& e) {                              \ 
   93            set_c_global_error_string(e.what());                         \ 
   94            return error_from_uhd_exception(&e);                         \ 
   95        } catch (const boost::exception& e) {                            \ 
   96            set_c_global_error_string(boost::diagnostic_information(e)); \ 
   97            return UHD_ERROR_BOOSTEXCEPT;                                \ 
   98        } catch (const std::exception& e) {                              \ 
   99            set_c_global_error_string(e.what());                         \ 
  100            return UHD_ERROR_STDEXCEPT;                                  \ 
  102            set_c_global_error_string("Unrecognized exception caught."); \ 
  103            return UHD_ERROR_UNKNOWN;                                    \ 
  105        set_c_global_error_string("None");                               \ 
  106        return UHD_ERROR_NONE; 
  113#    define UHD_SAFE_C_SAVE_ERROR(h, ...)                                \ 
  114        h->last_error.clear();                                           \ 
  117        } catch (const uhd::exception& e) {                              \ 
  118            set_c_global_error_string(e.what());                         \ 
  119            h->last_error = e.what();                                    \ 
  120            return error_from_uhd_exception(&e);                         \ 
  121        } catch (const boost::exception& e) {                            \ 
  122            set_c_global_error_string(boost::diagnostic_information(e)); \ 
  123            h->last_error = boost::diagnostic_information(e);            \ 
  124            return UHD_ERROR_BOOSTEXCEPT;                                \ 
  125        } catch (const std::exception& e) {                              \ 
  126            set_c_global_error_string(e.what());                         \ 
  127            h->last_error = e.what();                                    \ 
  128            return UHD_ERROR_STDEXCEPT;                                  \ 
  130            set_c_global_error_string("Unrecognized exception caught."); \ 
  131            h->last_error = "Unrecognized exception caught.";            \ 
  132            return UHD_ERROR_UNKNOWN;                                    \ 
  134        h->last_error = "None";                                          \ 
  135        set_c_global_error_string("None");                               \ 
  136        return UHD_ERROR_NONE; 
#define UHD_API
Definition config.h:87
UHD_API uhd_error uhd_get_last_error(char *error_out, size_t strbuffer_len)
Return the last error string reported by UHD.
uhd_error
UHD error codes.
Definition error.h:20
@ UHD_ERROR_BOOSTEXCEPT
A boost::exception was thrown.
Definition error.h:60
@ UHD_ERROR_OS
See uhd::os_error.
Definition error.h:40
@ UHD_ERROR_ASSERTION
See uhd::assertion_error.
Definition error.h:43
@ UHD_ERROR_STDEXCEPT
A std::exception was thrown.
Definition error.h:63
@ UHD_ERROR_INDEX
See uhd::index_error.
Definition error.h:28
@ UHD_ERROR_NONE
No error thrown.
Definition error.h:23
@ UHD_ERROR_VALUE
See uhd::value_error.
Definition error.h:49
@ UHD_ERROR_IO
See uhd::io_error.
Definition error.h:38
@ UHD_ERROR_NOT_IMPLEMENTED
See uhd::not_implemented_error.
Definition error.h:33
@ UHD_ERROR_LOOKUP
See uhd::lookup_error.
Definition error.h:45
@ UHD_ERROR_EXCEPT
See uhd::exception.
Definition error.h:57
@ UHD_ERROR_KEY
See uhd::key_error.
Definition error.h:30
@ UHD_ERROR_RUNTIME
See uhd::runtime_error.
Definition error.h:51
@ UHD_ERROR_TYPE
See uhd::type_error.
Definition error.h:47
@ UHD_ERROR_INVALID_DEVICE
Invalid device arguments.
Definition error.h:25
@ UHD_ERROR_UNKNOWN
An unknown error was thrown.
Definition error.h:66
@ UHD_ERROR_USB
See uhd::usb_error.
Definition error.h:35
@ UHD_ERROR_ENVIRONMENT
See uhd::environment_error.
Definition error.h:53
@ UHD_ERROR_SYSTEM
See uhd::system_error.
Definition error.h:55
Definition exception.hpp:37