1 #ifndef MOAB_ERROR_HANDLER_HPP
2 #define MOAB_ERROR_HANDLER_HPP
5 #define __func__ __FUNCTION__
48 #define __FILENAME__ ( strrchr( __FILE__, '/' ) ? strrchr( __FILE__, '/' ) + 1 : __FILE__ )
50 #define MBSTRINGIFY_( X ) #X
51 #define MBSTRINGIFY( X ) MBSTRINGIFY_( X )
54 #define __MBSDIR__ MBSTRINGIFY( LOCDIR )
61 #define MB_SET_ERR( err_code, err_msg ) \
64 std::ostringstream err_ostr; \
65 err_ostr << err_msg; \
66 return moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, err_code, err_ostr.str().c_str(), \
67 moab::MB_ERROR_TYPE_NEW_LOCAL ); \
72 #define MB_SET_ERR_RET( err_msg ) \
75 std::ostringstream err_ostr; \
76 err_ostr << err_msg; \
77 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, moab::MB_FAILURE, err_ostr.str().c_str(), \
78 moab::MB_ERROR_TYPE_NEW_LOCAL ); \
84 #define MB_SET_ERR_RET_VAL( err_msg, ret_val ) \
87 std::ostringstream err_ostr; \
88 err_ostr << err_msg; \
89 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, moab::MB_FAILURE, err_ostr.str().c_str(), \
90 moab::MB_ERROR_TYPE_NEW_LOCAL ); \
96 #define MB_SET_ERR_CONT( err_msg ) \
99 std::ostringstream err_ostr; \
100 err_ostr << err_msg; \
101 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, moab::MB_FAILURE, err_ostr.str().c_str(), \
102 moab::MB_ERROR_TYPE_NEW_LOCAL ); \
106 #define MB_SET_GLB_ERR( err_code, err_msg ) \
109 std::ostringstream err_ostr; \
110 err_ostr << err_msg; \
111 return moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, err_code, err_ostr.str().c_str(), \
112 moab::MB_ERROR_TYPE_NEW_GLOBAL ); \
116 #define MB_SET_GLB_ERR_RET( err_msg ) \
119 std::ostringstream err_ostr; \
120 err_ostr << ( err_msg ); \
121 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, moab::MB_FAILURE, err_ostr.str().c_str(), \
122 moab::MB_ERROR_TYPE_NEW_GLOBAL ); \
127 #define MB_SET_GLB_ERR_RET_VAL( err_msg, ret_val ) \
130 std::ostringstream err_ostr; \
131 err_ostr << ( err_msg ); \
132 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, moab::MB_FAILURE, err_ostr.str().c_str(), \
133 moab::MB_ERROR_TYPE_NEW_GLOBAL ); \
138 #define MB_SET_GLB_ERR_CONT( err_msg ) \
141 std::ostringstream err_ostr; \
142 err_ostr << ( err_msg ); \
143 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, moab::MB_FAILURE, err_ostr.str().c_str(), \
144 moab::MB_ERROR_TYPE_NEW_GLOBAL ); \
149 #define MB_CHK_ERR( err_code ) \
152 if( moab::MB_SUCCESS != ( err_code ) ) \
153 return moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, err_code, "", \
154 moab::MB_ERROR_TYPE_EXISTING ); \
159 #define MB_CHK_ERR_RET( err_code ) \
162 if( moab::MB_SUCCESS != ( err_code ) ) \
164 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, err_code, "", moab::MB_ERROR_TYPE_EXISTING ); \
171 #define MB_CHK_ERR_RET_VAL( err_code, ret_val ) \
174 if( moab::MB_SUCCESS != ( err_code ) ) \
176 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, err_code, "", moab::MB_ERROR_TYPE_EXISTING ); \
183 #define MB_CHK_ERR_CONT( err_code ) \
186 if( moab::MB_SUCCESS != ( err_code ) ) \
188 moab::MBError( __LINE__, __func__, __FILENAME__, __MBSDIR__, err_code, "", moab::MB_ERROR_TYPE_EXISTING ); \
194 #define MB_CHK_SET_ERR( err_code, err_msg ) \
197 if( moab::MB_SUCCESS != ( err_code ) ) MB_SET_ERR( err_code, err_msg ); \
202 #define MB_CHK_SET_ERR_RET( err_code, err_msg ) \
205 if( moab::MB_SUCCESS != ( err_code ) ) MB_SET_ERR_RET( err_msg ); \
210 #define MB_CHK_SET_ERR_RET_VAL( err_code, err_msg, ret_val ) \
213 if( moab::MB_SUCCESS != ( err_code ) ) MB_SET_ERR_RET_VAL( err_msg, ret_val ); \
218 #define MB_CHK_SET_ERR_CONT( err_code, err_msg ) \
221 if( moab::MB_SUCCESS != ( err_code ) ) MB_SET_ERR_CONT( err_msg ); \