util: Expose function nullable_string_is_equal.
[cascardo/ovs.git] / lib / ovsdb-condition.c
1 /* Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
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 #include <config.h>
17
18 #include <string.h>
19 #include "ovsdb-error.h"
20 #include "ovsdb-condition.h"
21
22 struct ovsdb_error *
23 ovsdb_function_from_string(const char *name, enum ovsdb_function *function)
24 {
25 #define OVSDB_FUNCTION(ENUM, NAME)              \
26     if (!strcmp(name, NAME)) {                  \
27         *function = ENUM;                       \
28         return NULL;                            \
29     }
30     OVSDB_FUNCTIONS;
31 #undef OVSDB_FUNCTION
32
33     return ovsdb_syntax_error(NULL, "unknown function",
34                               "No function named %s.", name);
35 }
36
37 const char *
38 ovsdb_function_to_string(enum ovsdb_function function)
39 {
40     switch (function) {
41 #define OVSDB_FUNCTION(ENUM, NAME) case ENUM: return NAME;
42         OVSDB_FUNCTIONS;
43 #undef OVSDB_FUNCTION
44     }
45
46     return NULL;
47 }