]>
Commit | Line | Data |
---|---|---|
e0edde6f | 1 | /* Copyright (c) 2009, 2010, 2011 Nicira, Inc. |
f85f8ebb BP |
2 | * |
3 | * Licensed under the Apache License, Version 2.0 (the "License"); | |
4 | * you may not use this file except in compliance with the License. | |
5 | * You may obtain a copy of the License at: | |
6 | * | |
7 | * http://www.apache.org/licenses/LICENSE-2.0 | |
8 | * | |
9 | * Unless required by applicable law or agreed to in writing, software | |
10 | * distributed under the License is distributed on an "AS IS" BASIS, | |
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
12 | * See the License for the specific language governing permissions and | |
13 | * limitations under the License. | |
14 | */ | |
15 | ||
16 | #ifndef OVSDB_ERROR_H | |
17 | #define OVSDB_ERROR_H 1 | |
18 | ||
19 | #include "compiler.h" | |
20 | ||
21 | struct json; | |
22 | ||
23 | struct ovsdb_error *ovsdb_error(const char *tag, const char *details, ...) | |
cab50449 TG |
24 | OVS_PRINTF_FORMAT(2, 3) |
25 | OVS_WARN_UNUSED_RESULT; | |
f85f8ebb | 26 | struct ovsdb_error *ovsdb_io_error(int error, const char *details, ...) |
cab50449 TG |
27 | OVS_PRINTF_FORMAT(2, 3) |
28 | OVS_WARN_UNUSED_RESULT; | |
f85f8ebb BP |
29 | struct ovsdb_error *ovsdb_syntax_error(const struct json *, const char *tag, |
30 | const char *details, ...) | |
cab50449 TG |
31 | OVS_PRINTF_FORMAT(3, 4) |
32 | OVS_WARN_UNUSED_RESULT; | |
f85f8ebb BP |
33 | |
34 | struct ovsdb_error *ovsdb_wrap_error(struct ovsdb_error *error, | |
35 | const char *details, ...) | |
cab50449 | 36 | OVS_PRINTF_FORMAT(2, 3); |
f85f8ebb | 37 | |
1dd5b71d BP |
38 | struct ovsdb_error *ovsdb_internal_error(struct ovsdb_error *error, |
39 | const char *file, int line, | |
f85f8ebb | 40 | const char *details, ...) |
cab50449 TG |
41 | OVS_PRINTF_FORMAT(4, 5) |
42 | OVS_WARN_UNUSED_RESULT; | |
1dd5b71d BP |
43 | |
44 | /* Returns a pointer to an ovsdb_error that represents an internal error for | |
45 | * the current file name and line number with MSG as the associated message. | |
46 | * The caller is responsible for freeing the internal error. */ | |
47 | #define OVSDB_BUG(MSG) \ | |
48 | ovsdb_internal_error(NULL, __FILE__, __LINE__, "%s", MSG) | |
49 | ||
50 | /* Returns a pointer to an ovsdb_error that represents an internal error for | |
51 | * the current file name and line number, with MSG as the associated message. | |
52 | * If ERROR is nonnull then the internal error is wrapped around ERROR. Takes | |
53 | * ownership of ERROR. The caller is responsible for freeing the returned | |
54 | * error. */ | |
55 | #define OVSDB_WRAP_BUG(MSG, ERROR) \ | |
56 | ovsdb_internal_error(ERROR, __FILE__, __LINE__, "%s", MSG) | |
f85f8ebb BP |
57 | |
58 | void ovsdb_error_destroy(struct ovsdb_error *); | |
59 | struct ovsdb_error *ovsdb_error_clone(const struct ovsdb_error *) | |
cab50449 | 60 | OVS_WARN_UNUSED_RESULT; |
f85f8ebb BP |
61 | |
62 | char *ovsdb_error_to_string(const struct ovsdb_error *); | |
63 | struct json *ovsdb_error_to_json(const struct ovsdb_error *); | |
64 | ||
65 | const char *ovsdb_error_get_tag(const struct ovsdb_error *); | |
66 | ||
80af01ed BP |
67 | void ovsdb_error_assert(struct ovsdb_error *); |
68 | ||
f85f8ebb | 69 | #endif /* ovsdb-error.h */ |