OpenDNSSEC-enforcer  2.1.12
db_object.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_object_h
31 #define __db_object_h
32 
33 struct db_object;
34 struct db_object_field;
36 typedef struct db_object db_object_t;
37 typedef struct db_object_field db_object_field_t;
39 
40 #include "db_connection.h"
41 #include "db_result.h"
42 #include "db_join.h"
43 #include "db_clause.h"
44 #include "db_type.h"
45 #include "db_value.h"
46 #include "db_enum.h"
47 #include "db_backend.h"
48 
54  const char* name;
57 };
58 
64 
70 extern db_object_field_t* db_object_field_new_copy(const db_object_field_t* from_object_field);
71 
76 extern void db_object_field_free(db_object_field_t* object_field);
77 
84 extern int db_object_field_copy(db_object_field_t* object_field, const db_object_field_t* from_object_field);
85 
91 extern const char* db_object_field_name(const db_object_field_t* object_field);
92 
98 extern db_type_t db_object_field_type(const db_object_field_t* object_field);
99 
106 extern int db_object_field_set_name(db_object_field_t* object_field, const char* name);
107 
114 extern int db_object_field_set_type(db_object_field_t* object_field, db_type_t type);
115 
122 extern int db_object_field_set_enum_set(db_object_field_t* object_field, const db_enum_t* enum_set);
123 
129 extern int db_object_field_not_empty(const db_object_field_t* object_field);
130 
137 extern const db_object_field_t* db_object_field_next(const db_object_field_t* object_field);
138 
145  size_t size;
146 };
147 
153 
160 
165 extern void db_object_field_list_free(db_object_field_list_t* object_field_list);
166 
173 extern int db_object_field_list_copy(db_object_field_list_t* object_field_list, const db_object_field_list_t* from_object_field_list);
174 
182 extern int db_object_field_list_add(db_object_field_list_t* object_field_list, db_object_field_t* object_field);
183 
189 extern const db_object_field_t* db_object_field_list_begin(const db_object_field_list_t* object_field_list);
190 
196 extern size_t db_object_field_list_size(const db_object_field_list_t* object_field_list);
197 
201 struct db_object {
203  const char* table;
204  const char* primary_key_name;
206 };
207 
212 extern db_object_t* db_object_new(void);
213 
219 extern void db_object_free(db_object_t* object);
220 
227 extern const db_connection_t* db_object_connection(const db_object_t* object);
228 
235 extern const char* db_object_table(const db_object_t* object);
236 
244 
251 extern int db_object_set_connection(db_object_t* object, const db_connection_t* connection);
252 
259 extern int db_object_set_table(db_object_t* object, const char* table);
260 
267 extern int db_object_set_primary_key_name(db_object_t* object, const char* primary_key_name);
268 
276 extern int db_object_set_object_field_list(db_object_t* object, db_object_field_list_t* object_field_list);
277 
287 int db_object_create(const db_object_t* object, const db_object_field_list_t* object_field_list, const db_value_set_t* value_set);
288 
297 extern db_result_list_t* db_object_read(const db_object_t* object, const db_join_list_t* join_list, const db_clause_list_t* clause_list);
298 
307 extern int db_object_update(const db_object_t* object, const db_object_field_list_t* object_field_list, const db_value_set_t* value_set, const db_clause_list_t* clause_list);
308 
315 extern int db_object_delete(const db_object_t* object, const db_clause_list_t* clause_list);
316 
325 extern int db_object_count(const db_object_t* object, const db_join_list_t* join_list, const db_clause_list_t* clause_list, size_t* count);
326 
327 #endif
int db_object_field_copy(db_object_field_t *object_field, const db_object_field_t *from_object_field)
Definition: db_object.c:76
db_object_t * db_object_new(void)
Definition: db_object.c:304
int db_object_field_list_copy(db_object_field_list_t *object_field_list, const db_object_field_list_t *from_object_field_list)
Definition: db_object.c:216
const db_object_field_t * db_object_field_next(const db_object_field_t *object_field)
Definition: db_object.c:162
db_type_t db_object_field_type(const db_object_field_t *object_field)
Definition: db_object.c:102
int db_object_field_not_empty(const db_object_field_t *object_field)
Definition: db_object.c:146
int db_object_update(const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set, const db_clause_list_t *clause_list)
Definition: db_object.c:441
int db_object_field_list_add(db_object_field_list_t *object_field_list, db_object_field_t *object_field)
Definition: db_object.c:254
const char * db_object_field_name(const db_object_field_t *object_field)
Definition: db_object.c:94
db_object_field_t * db_object_field_new(void)
Definition: db_object.c:40
db_object_field_t * db_object_field_new_copy(const db_object_field_t *from_object_field)
Definition: db_object.c:52
const db_object_field_t * db_object_field_list_begin(const db_object_field_list_t *object_field_list)
Definition: db_object.c:284
const db_connection_t * db_object_connection(const db_object_t *object)
Definition: db_object.c:320
int db_object_set_table(db_object_t *object, const char *table)
Definition: db_object.c:356
db_object_field_list_t * db_object_field_list_new_copy(const db_object_field_list_t *from_object_field_list)
Definition: db_object.c:182
int db_object_field_set_name(db_object_field_t *object_field, const char *name)
Definition: db_object.c:110
int db_object_set_connection(db_object_t *object, const db_connection_t *connection)
Definition: db_object.c:341
int db_object_field_set_type(db_object_field_t *object_field, db_type_t type)
Definition: db_object.c:122
const char * db_object_table(const db_object_t *object)
Definition: db_object.c:327
size_t db_object_field_list_size(const db_object_field_list_t *object_field_list)
Definition: db_object.c:292
db_object_field_list_t * db_object_field_list_new(void)
Definition: db_object.c:174
int db_object_field_set_enum_set(db_object_field_t *object_field, const db_enum_t *enum_set)
Definition: db_object.c:134
void db_object_free(db_object_t *object)
Definition: db_object.c:311
int db_object_set_object_field_list(db_object_t *object, db_object_field_list_t *object_field_list)
Definition: db_object.c:386
void db_object_field_free(db_object_field_t *object_field)
Definition: db_object.c:69
int db_object_create(const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
Definition: db_object.c:401
int db_object_delete(const db_object_t *object, const db_clause_list_t *clause_list)
Definition: db_object.c:464
void db_object_field_list_free(db_object_field_list_t *object_field_list)
Definition: db_object.c:199
const db_object_field_list_t * db_object_object_field_list(const db_object_t *object)
Definition: db_object.c:334
int db_object_count(const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
Definition: db_object.c:481
int db_object_set_primary_key_name(db_object_t *object, const char *primary_key_name)
Definition: db_object.c:371
db_result_list_t * db_object_read(const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
Definition: db_object.c:424
db_type_t
Definition: db_type.h:54
db_object_field_t * end
Definition: db_object.h:144
db_object_field_t * begin
Definition: db_object.h:143
db_type_t type
Definition: db_object.h:55
const db_enum_t * enum_set
Definition: db_object.h:56
const char * name
Definition: db_object.h:54
db_object_field_t * next
Definition: db_object.h:53
db_object_field_list_t * object_field_list
Definition: db_object.h:205
const char * primary_key_name
Definition: db_object.h:204
const char * table
Definition: db_object.h:203
const db_connection_t * connection
Definition: db_object.h:202