|
NSCL DDAS 12.2-009
Support for XIA DDAS at FRIB
|
Catch-all guards for the extern "C" ctypes shims. Nothing may throw across an extern "C" frame into ctypes: expected failures are handled inside the class methods; these handle anything unexpected. More...
#include <iostream>

Go to the source code of this file.
Functions | |
| template<typename T , typename R , typename Fn > | |
| R | shimGuard (T *utils, const char *where, R fallback, Fn fn) |
| Run fn() inside the boundary net; return fallback on any exception. T must provide SetLastErrorMessage(). More... | |
| template<typename T , typename Fn > | |
| void | shimGuardVoid (T *utils, const char *where, Fn fn) |
| Same net for void shims. More... | |
| template<typename Fn > | |
| auto | shimGuardNew (const char *where, Fn fn) -> decltype(fn()) |
| Net for the constructors: no object exists yet to store a message in, so log and return nullptr (the Python init must check). More... | |
Variables | |
| constexpr int | SHIM_UNEXPECTED_ERROR = -1999 |
Catch-all guards for the extern "C" ctypes shims. Nothing may throw across an extern "C" frame into ctypes: expected failures are handled inside the class methods; these handle anything unexpected.