OpenDNSSEC-enforcer 2.1.13
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
36typedef 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
89typedef enum {
103
104#define DB_CLAUSE_OP_AND DB_CLAUSE_OPERATOR_AND
105#define DB_CLAUSE_OP_OR DB_CLAUSE_OPERATOR_OR
106
107struct db_clause;
108struct db_clause_list;
109typedef struct db_clause db_clause_t;
111
112#include "db_value.h"
113
118struct db_clause {
120 char* table;
121 char* field;
126};
127
132extern db_clause_t* db_clause_new(void);
133
138extern void db_clause_free(db_clause_t* clause);
139
145extern const char* db_clause_field(const db_clause_t* clause);
146
152extern db_clause_type_t db_clause_type(const db_clause_t* clause);
153
159extern const db_value_t* db_clause_value(const db_clause_t* clause);
160
167
175extern const db_clause_list_t* db_clause_list(const db_clause_t* clause);
176
183extern int db_clause_set_field(db_clause_t* clause, const char* field);
184
191extern int db_clause_set_type(db_clause_t* clause, db_clause_type_t type);
192
199extern int db_clause_set_operator(db_clause_t* clause, db_clause_operator_t clause_operator);
200
206extern int db_clause_not_empty(const db_clause_t* clause);
207
214extern const db_clause_t* db_clause_next(const db_clause_t* clause);
215
222
229};
230
236
241extern void db_clause_list_free(db_clause_list_t* clause_list);
242
250extern int db_clause_list_add(db_clause_list_t* clause_list, db_clause_t* clause);
251
257extern const db_clause_t* db_clause_list_begin(const db_clause_list_t* clause_list);
258
259#endif
const db_clause_list_t * db_clause_list(const db_clause_t *clause)
Definition: db_clause.c:101
db_clause_operator_t db_clause_operator(const db_clause_t *clause)
Definition: db_clause.c:93
const db_value_t * db_clause_value(const db_clause_t *clause)
Definition: db_clause.c:85
void db_clause_free(db_clause_t *clause)
Definition: db_clause.c:56
db_clause_type_t db_clause_type(const db_clause_t *clause)
Definition: db_clause.c:77
db_clause_list_t * db_clause_list_new(void)
Definition: db_clause.c:202
db_clause_t * db_clause_new(void)
Definition: db_clause.c:43
const db_clause_t * db_clause_next(const db_clause_t *clause)
Definition: db_clause.c:179
db_clause_operator_t
Definition: db_clause.h:89
@ DB_CLAUSE_OPERATOR_UNKNOWN
Definition: db_clause.h:93
@ DB_CLAUSE_OPERATOR_AND
Definition: db_clause.h:97
@ DB_CLAUSE_OPERATOR_OR
Definition: db_clause.h:101
db_value_t * db_clause_get_value(db_clause_t *clause)
Definition: db_clause.c:187
const char * db_clause_field(const db_clause_t *clause)
Definition: db_clause.c:69
int db_clause_list_add(db_clause_list_t *clause_list, db_clause_t *clause)
Definition: db_clause.c:226
void db_clause_list_free(db_clause_list_t *clause_list)
Definition: db_clause.c:209
db_clause_type_t
Definition: db_clause.h:36
@ DB_CLAUSE_NESTED
Definition: db_clause.h:76
@ DB_CLAUSE_GREATER_THEN
Definition: db_clause.h:64
@ DB_CLAUSE_NOT_EQUAL
Definition: db_clause.h:48
@ DB_CLAUSE_IS_NOT_NULL
Definition: db_clause.h:72
@ DB_CLAUSE_UNKNOWN
Definition: db_clause.h:40
@ DB_CLAUSE_GREATER_OR_EQUAL
Definition: db_clause.h:60
@ DB_CLAUSE_IS_NULL
Definition: db_clause.h:68
@ DB_CLAUSE_EQUAL
Definition: db_clause.h:44
@ DB_CLAUSE_LESS_OR_EQUAL
Definition: db_clause.h:56
@ DB_CLAUSE_LESS_THEN
Definition: db_clause.h:52
int db_clause_set_operator(db_clause_t *clause, db_clause_operator_t clause_operator)
Definition: db_clause.c:142
int db_clause_set_field(db_clause_t *clause, const char *field)
Definition: db_clause.c:109
const db_clause_t * db_clause_list_begin(const db_clause_list_t *clause_list)
Definition: db_clause.c:255
int db_clause_not_empty(const db_clause_t *clause)
Definition: db_clause.c:154
int db_clause_set_type(db_clause_t *clause, db_clause_type_t type)
Definition: db_clause.c:130
db_clause_t * begin
Definition: db_clause.h:227
db_clause_t * end
Definition: db_clause.h:228
db_value_t value
Definition: db_clause.h:123
db_clause_t * next
Definition: db_clause.h:119
db_clause_type_t type
Definition: db_clause.h:122
db_clause_operator_t clause_operator
Definition: db_clause.h:124
db_clause_list_t * clause_list
Definition: db_clause.h:125
char * field
Definition: db_clause.h:121
char * table
Definition: db_clause.h:120