1 #ifndef IREL_LASSO_HPP
2 #define IREL_LASSO_HPP
3 
4 #include "iRel.h"
5 
6 #define RETURN(CODE) ERROR((CODE), "")
7 #define RETURNR(CODE) ERRORR((CODE), "")
8 
9 #define ERROR(CODE, MSG)                              \
10   do {                                                \
11     *err = LASSOI->set_last_error((CODE), (MSG));     \
12     return;                                           \
13   } while(false)
14 
15 #define ERRORR(CODE, MSG) return LASSOI->set_last_error((CODE), (MSG))
16 
17 #define CHK_ERROR(CODE)                               \
18   do {                                                \
19     *err = (CODE);                                    \
20     if (*err != iBase_SUCCESS)                        \
21       return;                                         \
22   } while(false)
23 
24 #define CHK_ERRORR(CODE)                              \
25   do {                                                \
26     int err = (CODE);                                 \
27     if (err != iBase_SUCCESS)                         \
28       return err;                                     \
29   } while(false)
30 
31 #define CHK_PAIR()                                    \
32   do {                                                \
33     if (NULL == pair) {                               \
34       ERROR(iBase_FAILURE, "Invalid relation pair."); \
35     }                                                 \
36   } while(false)
37 
38 #endif
39