OpenDNSSEC-enforcer  2.0.2
db_clause.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 Jerry Lundström <lundstrom.jerry@gmail.com>
3  * Copyright (c) 2014 .SE (The Internet Infrastructure Foundation).
4  * Copyright (c) 2014 OpenDNSSEC AB (svb)
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
22  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
24  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  */
29 
30 #ifndef __db_clause_h
31 #define __db_clause_h
32 
36 typedef enum {
78 
79 #define DB_CLAUSE_EQ DB_CLAUSE_EQUAL
80 #define DB_CLAUSE_NE DB_CLAUSE_NOT_EQUAL
81 #define DB_CLAUSE_LT DB_CLAUSE_LESS_THEN
82 #define DB_CLAUSE_LE DB_CLAUSE_LESS_OR_EQUAL
83 #define DB_CLAUSE_GE DB_CLAUSE_GREATER_OR_EQUAL
84 #define DB_CLAUSE_GT DB_CLAUSE_GREATER_THEN
85 
89 typedef enum {
103 
104 #define DB_CLAUSE_OP_AND DB_CLAUSE_OPERATOR_AND
105 #define DB_CLAUSE_OP_OR DB_CLAUSE_OPERATOR_OR
106 
107 struct db_clause;
108 struct db_clause_list;
109 typedef struct db_clause db_clause_t;
111 
112 #include "db_value.h"
113 
118 struct db_clause {
120  char* table;
121  char* field;
126 };
127 
133 
138 void db_clause_free(db_clause_t* clause);
139 
145 const char* db_clause_field(const db_clause_t* clause);
146 
153 
159 const db_value_t* db_clause_value(const db_clause_t* clause);
160 
167 
175 const db_clause_list_t* db_clause_list(const db_clause_t* clause);
176 
183 int db_clause_set_field(db_clause_t* clause, const char* field);
184 
192 
200 
206 int db_clause_not_empty(const db_clause_t* clause);
207 
214 const db_clause_t* db_clause_next(const db_clause_t* clause);
215 
222 
229 };
230 
236 
242 
251 
258 
259 #endif
db_clause_list_t * clause_list
Definition: db_clause.h:125
db_value_t value
Definition: db_clause.h:123
char * table
Definition: db_clause.h:120
db_clause_type_t
Definition: db_clause.h:36
db_clause_type_t db_clause_type(const db_clause_t *clause)
Definition: db_clause.c:77
const db_clause_list_t * db_clause_list(const db_clause_t *clause)
Definition: db_clause.c:101
db_clause_operator_t clause_operator
Definition: db_clause.h:124
int db_clause_set_type(db_clause_t *clause, db_clause_type_t type)
Definition: db_clause.c:130
db_clause_t * next
Definition: db_clause.h:119
db_clause_t * begin
Definition: db_clause.h:227
const char * db_clause_field(const db_clause_t *clause)
Definition: db_clause.c:69
db_clause_list_t * db_clause_list_new(void)
Definition: db_clause.c:202
int db_clause_set_operator(db_clause_t *clause, db_clause_operator_t clause_operator)
Definition: db_clause.c:142
db_clause_t * end
Definition: db_clause.h:228
db_clause_operator_t db_clause_operator(const db_clause_t *clause)
Definition: db_clause.c:93
void db_clause_free(db_clause_t *clause)
Definition: db_clause.c:56
const db_clause_t * db_clause_list_begin(const db_clause_list_t *clause_list)
Definition: db_clause.c:255
const db_value_t * db_clause_value(const db_clause_t *clause)
Definition: db_clause.c:85
void db_clause_list_free(db_clause_list_t *clause_list)
Definition: db_clause.c:209
int db_clause_list_add(db_clause_list_t *clause_list, db_clause_t *clause)
Definition: db_clause.c:226
db_clause_t * db_clause_new(void)
Definition: db_clause.c:43
int db_clause_not_empty(const db_clause_t *clause)
Definition: db_clause.c:154
char * field
Definition: db_clause.h:121
db_clause_type_t type
Definition: db_clause.h:122
const db_clause_t * db_clause_next(const db_clause_t *clause)
Definition: db_clause.c:179
db_value_t * db_clause_get_value(db_clause_t *clause)
Definition: db_clause.c:187
db_clause_operator_t
Definition: db_clause.h:89
int db_clause_set_field(db_clause_t *clause, const char *field)
Definition: db_clause.c:109