1 | /* |
2 | Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. |
3 | |
4 | This program is free software; you can redistribute it and/or modify |
5 | it under the terms of the GNU General Public License as published by |
6 | the Free Software Foundation; version 2 of the License. |
7 | |
8 | This program is distributed in the hope that it will be useful, |
9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | GNU General Public License for more details. |
12 | |
13 | You should have received a copy of the GNU General Public License |
14 | along with this program; if not, write to the Free Software |
15 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
16 | */ |
17 | |
18 | #ifndef SQL_CALLBACK_INCLUDED |
19 | #define SQL_CALLBACK_INCLUDED |
20 | |
21 | /** |
22 | Macro used for an internal callback. |
23 | |
24 | The macro will check that the object exists and that the function |
25 | is defined. If that is the case, it will call the function with the |
26 | given parameters. |
27 | |
28 | If the object or the function is not defined, the callback will be |
29 | considered successful (nothing needed to be done) and will |
30 | therefore return no error. |
31 | */ |
32 | |
33 | #define MYSQL_CALLBACK(OBJ, FUNC, PARAMS) \ |
34 | do { \ |
35 | if ((OBJ) && ((OBJ)->FUNC)) \ |
36 | (OBJ)->FUNC PARAMS; \ |
37 | } while (0) |
38 | |
39 | #define MYSQL_CALLBACK_ELSE(OBJ, FUNC, PARAMS, ELSE) \ |
40 | (((OBJ) && ((OBJ)->FUNC)) ? (OBJ)->FUNC PARAMS : (ELSE)) |
41 | |
42 | #endif /* SQL_CALLBACK_INCLUDED */ |
43 | |