#include "context.h"
#include "core/extension.h"
#include "device.h"
#include <type_traits>
#include <iostream>
Go to the source code of this file.
|
#define | BEGIN_API_CALL try |
|
#define | NOEXCEPT_RETURN(R, ...) catch(...) { std::ostringstream ss; librealsense::stream_args(ss, #__VA_ARGS__, __VA_ARGS__); rs2_error* e; librealsense::translate_exception(__FUNCTION__, ss.str(), &e); LOG_WARNING(rs2_get_error_message(e)); rs2_free_error(e); return R; } |
|
#define | HANDLE_EXCEPTIONS_AND_RETURN(R, ...) catch(...) { std::ostringstream ss; librealsense::stream_args(ss, #__VA_ARGS__, __VA_ARGS__); librealsense::translate_exception(__FUNCTION__, ss.str(), error); return R; } |
|
#define | NOARGS_HANDLE_EXCEPTIONS_AND_RETURN(R) catch(...) { librealsense::translate_exception(__FUNCTION__, "", error); return R; } |
|
#define | VALIDATE_NOT_NULL(ARG) if(!(ARG)) throw std::runtime_error("null pointer passed for argument \"" #ARG "\""); |
|
#define | VALIDATE_ENUM(ARG) if(!librealsense::is_valid(ARG)) { std::ostringstream ss; ss << "invalid enum value for argument \"" #ARG "\""; throw librealsense::invalid_value_exception(ss.str()); } |
|
#define | VALIDATE_RANGE(ARG, MIN, MAX) if((ARG) < (MIN) || (ARG) > (MAX)) { std::ostringstream ss; ss << "out of range value for argument \"" #ARG "\""; throw librealsense::invalid_value_exception(ss.str()); } |
|
#define | VALIDATE_LE(ARG, MAX) if((ARG) > (MAX)) { std::ostringstream ss; ss << "out of range value for argument \"" #ARG "\""; throw std::runtime_error(ss.str()); } |
|
#define | VALIDATE_INTERFACE_NO_THROW(X, T) |
|
#define | VALIDATE_INTERFACE(X, T) |
|
§ BEGIN_API_CALL
#define BEGIN_API_CALL try |
§ HANDLE_EXCEPTIONS_AND_RETURN
#define HANDLE_EXCEPTIONS_AND_RETURN |
( |
|
R, |
|
|
|
... |
|
) |
| catch(...) { std::ostringstream ss; librealsense::stream_args(ss, #__VA_ARGS__, __VA_ARGS__); librealsense::translate_exception(__FUNCTION__, ss.str(), error); return R; } |
§ NOARGS_HANDLE_EXCEPTIONS_AND_RETURN
#define NOARGS_HANDLE_EXCEPTIONS_AND_RETURN |
( |
|
R | ) |
catch(...) { librealsense::translate_exception(__FUNCTION__, "", error); return R; } |
§ NOEXCEPT_RETURN
§ VALIDATE_ENUM
#define VALIDATE_ENUM |
( |
|
ARG | ) |
if(!librealsense::is_valid(ARG)) { std::ostringstream ss; ss << "invalid enum value for argument \"" #ARG "\""; throw librealsense::invalid_value_exception(ss.str()); } |
§ VALIDATE_INTERFACE
#define VALIDATE_INTERFACE |
( |
|
X, |
|
|
|
T |
|
) |
| |
Value:([&]() -> T* { \
if(p == nullptr) \
throw std::runtime_error("Object does not support \"" #T "\" interface! " ); \
return p; \
})()
#define VALIDATE_INTERFACE_NO_THROW(X, T)
Definition: api.h:411
§ VALIDATE_INTERFACE_NO_THROW
#define VALIDATE_INTERFACE_NO_THROW |
( |
|
X, |
|
|
|
T |
|
) |
| |
Value:([&]() -> T* { \
T* p = dynamic_cast<T*>(&(*X)); \
if (p == nullptr) \
{ \
if (ext == nullptr) return nullptr; \
else \
{ \
return nullptr; \
return p; \
} \
} \
return p; \
})()
Definition: extension.h:112
Definition: extension.h:22
§ VALIDATE_LE
#define VALIDATE_LE |
( |
|
ARG, |
|
|
|
MAX |
|
) |
| if((ARG) > (MAX)) { std::ostringstream ss; ss << "out of range value for argument \"" #ARG "\""; throw std::runtime_error(ss.str()); } |
§ VALIDATE_NOT_NULL
#define VALIDATE_NOT_NULL |
( |
|
ARG | ) |
if(!(ARG)) throw std::runtime_error("null pointer passed for argument \"" #ARG "\""); |
§ VALIDATE_RANGE
#define VALIDATE_RANGE |
( |
|
ARG, |
|
|
|
MIN, |
|
|
|
MAX |
|
) |
| if((ARG) < (MIN) || (ARG) > (MAX)) { std::ostringstream ss; ss << "out of range value for argument \"" #ARG "\""; throw librealsense::invalid_value_exception(ss.str()); } |