OpenDNSSEC-enforcer  2.1.12
db_backend.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_backend_h
31 #define __db_backend_h
32 
33 struct db_backend_handle;
34 struct db_backend;
36 typedef struct db_backend db_backend_t;
37 
38 #include "db_configuration.h"
39 #include "db_result.h"
40 #include "db_object.h"
41 #include "db_join.h"
42 #include "db_clause.h"
43 #include "db_value.h"
44 
51 typedef int (*db_backend_handle_initialize_t)(void* data);
52 
59 typedef int (*db_backend_handle_shutdown_t)(void* data);
60 
68 typedef int (*db_backend_handle_connect_t)(void* data, const db_configuration_list_t* configuration_list);
69 
76 typedef int (*db_backend_handle_disconnect_t)(void* data);
77 
87 typedef int (*db_backend_handle_create_t)(void* data, const db_object_t* object, const db_object_field_list_t* object_field_list, const db_value_set_t* value_set);
88 
99 typedef db_result_list_t* (*db_backend_handle_read_t)(void* data, const db_object_t* object, const db_join_list_t* join_list, const db_clause_list_t* clause_list);
100 
111 typedef int (*db_backend_handle_update_t)(void* data, 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);
112 
121 typedef int (*db_backend_handle_delete_t)(void* data, const db_object_t* object, const db_clause_list_t* clause_list);
122 
133 typedef int (*db_backend_handle_count_t)(void* data, const db_object_t* object, const db_join_list_t* join_list, const db_clause_list_t* clause_list, size_t* count);
134 
139 typedef void (*db_backend_handle_free_t)(void* data);
140 
147 typedef int (*db_backend_handle_transaction_begin_t)(void* data);
148 
155 typedef int (*db_backend_handle_transaction_commit_t)(void* data);
156 
163 typedef int (*db_backend_handle_transaction_rollback_t)(void* data);
164 
170  void* data;
184 };
185 
191 
197 extern void db_backend_handle_free(db_backend_handle_t* backend_handle);
198 
204 extern int db_backend_handle_initialize(const db_backend_handle_t* backend_handle);
205 
213 extern int db_backend_handle_connect(const db_backend_handle_t* backend_handle, const db_configuration_list_t* configuration_list);
214 
225 extern int db_backend_handle_create(const db_backend_handle_t* backend_handle, const db_object_t* object, const db_object_field_list_t* object_field_list, const db_value_set_t* value_set);
226 
236 extern db_result_list_t* db_backend_handle_read(const db_backend_handle_t* backend_handle, const db_object_t* object, const db_join_list_t* join_list, const db_clause_list_t* clause_list);
237 
247 extern int db_backend_handle_update(const db_backend_handle_t* backend_handle, 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);
248 
256 extern int db_backend_handle_delete(const db_backend_handle_t* backend_handle, const db_object_t* object, const db_clause_list_t* clause_list);
257 
267 extern int db_backend_handle_count(const db_backend_handle_t* backend_handle, const db_object_t* object, const db_join_list_t* join_list, const db_clause_list_t* clause_list, size_t* count);
268 
275 extern int db_backend_handle_set_initialize(db_backend_handle_t* backend_handle, db_backend_handle_initialize_t initialize_function);
276 
283 extern int db_backend_handle_set_shutdown(db_backend_handle_t* backend_handle, db_backend_handle_shutdown_t shutdown_function);
284 
291 extern int db_backend_handle_set_connect(db_backend_handle_t* backend_handle, db_backend_handle_connect_t connect_function);
292 
299 extern int db_backend_handle_set_disconnect(db_backend_handle_t* backend_handle, db_backend_handle_disconnect_t disconnect_function);
300 
307 extern int db_backend_handle_set_create(db_backend_handle_t* backend_handle, db_backend_handle_create_t create_function);
308 
315 extern int db_backend_handle_set_read(db_backend_handle_t* backend_handle, db_backend_handle_read_t read_function);
316 
323 extern int db_backend_handle_set_update(db_backend_handle_t* backend_handle, db_backend_handle_update_t update_function);
324 
331 extern int db_backend_handle_set_delete(db_backend_handle_t* backend_handle, db_backend_handle_delete_t delete_function);
332 
339 extern int db_backend_handle_set_count(db_backend_handle_t* backend_handle, db_backend_handle_count_t count_function);
340 
347 extern int db_backend_handle_set_free(db_backend_handle_t* backend_handle, db_backend_handle_free_t free_function);
348 
355 extern int db_backend_handle_set_transaction_begin(db_backend_handle_t* backend_handle, db_backend_handle_transaction_begin_t transaction_begin_function);
356 
363 extern int db_backend_handle_set_transaction_commit(db_backend_handle_t* backend_handle, db_backend_handle_transaction_commit_t transaction_commit_function);
364 
371 extern int db_backend_handle_set_transaction_rollback(db_backend_handle_t* backend_handle, db_backend_handle_transaction_rollback_t transaction_rollback_function);
372 
379 extern int db_backend_handle_set_data(db_backend_handle_t* backend_handle, void* data);
380 
384 struct db_backend {
386  char* name;
388 };
389 
394 extern db_backend_t* db_backend_new(void);
395 
400 extern void db_backend_free(db_backend_t* backend);
401 
408 extern const db_backend_handle_t* db_backend_handle(const db_backend_t* backend);
409 
416 extern int db_backend_set_name(db_backend_t* backend, const char* name);
417 
425 extern int db_backend_set_handle(db_backend_t* backend, db_backend_handle_t* handle);
426 
432 extern int db_backend_initialize(const db_backend_t* backend);
433 
441 extern int db_backend_connect(const db_backend_t* backend, const db_configuration_list_t* configuration_list);
442 
453 extern int db_backend_create(const db_backend_t* backend, const db_object_t* object, const db_object_field_list_t* object_field_list, const db_value_set_t* value_set);
454 
464 extern db_result_list_t* db_backend_read(const db_backend_t* backend, const db_object_t* object, const db_join_list_t* join_list, const db_clause_list_t* clause_list);
465 
475 extern int db_backend_update(const db_backend_t* backend, 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);
476 
484 extern int db_backend_delete(const db_backend_t* backend, const db_object_t* object, const db_clause_list_t* clause_list);
485 
495 extern int db_backend_count(const db_backend_t* backend, const db_object_t* object, const db_join_list_t* join_list, const db_clause_list_t* clause_list, size_t* count);
496 
503 extern db_backend_t* db_backend_factory_get_backend(const char* name);
504 
505 #endif
int db_backend_update(const db_backend_t *backend, 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_backend.c:419
db_backend_t * db_backend_factory_get_backend(const char *name)
Definition: db_backend.c:472
int(* db_backend_handle_create_t)(void *data, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
Definition: db_backend.h:87
int db_backend_handle_set_count(db_backend_handle_t *backend_handle, db_backend_handle_count_t count_function)
Definition: db_backend.c:250
int db_backend_handle_set_update(db_backend_handle_t *backend_handle, db_backend_handle_update_t update_function)
Definition: db_backend.c:232
int db_backend_handle_update(const db_backend_handle_t *backend_handle, 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_backend.c:127
int db_backend_handle_initialize(const db_backend_handle_t *backend_handle)
Definition: db_backend.c:68
db_result_list_t * db_backend_handle_read(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
Definition: db_backend.c:113
int(* db_backend_handle_count_t)(void *data, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
Definition: db_backend.h:133
int db_backend_handle_count(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
Definition: db_backend.c:161
int db_backend_set_name(db_backend_t *backend, const char *name)
Definition: db_backend.c:330
int(* db_backend_handle_connect_t)(void *data, const db_configuration_list_t *configuration_list)
Definition: db_backend.h:68
int db_backend_handle_set_shutdown(db_backend_handle_t *backend_handle, db_backend_handle_shutdown_t shutdown_function)
Definition: db_backend.c:187
int db_backend_handle_set_initialize(db_backend_handle_t *backend_handle, db_backend_handle_initialize_t initialize_function)
Definition: db_backend.c:178
void db_backend_handle_free(db_backend_handle_t *backend_handle)
Definition: db_backend.c:56
int(* db_backend_handle_transaction_begin_t)(void *data)
Definition: db_backend.h:147
const db_backend_handle_t * db_backend_handle(const db_backend_t *backend)
void db_backend_free(db_backend_t *backend)
Definition: db_backend.c:318
db_backend_t * db_backend_new(void)
Definition: db_backend.c:311
int db_backend_handle_set_disconnect(db_backend_handle_t *backend_handle, db_backend_handle_disconnect_t disconnect_function)
Definition: db_backend.c:205
int(* db_backend_handle_update_t)(void *data, 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_backend.h:111
int db_backend_handle_set_delete(db_backend_handle_t *backend_handle, db_backend_handle_delete_t delete_function)
Definition: db_backend.c:241
int(* db_backend_handle_disconnect_t)(void *data)
Definition: db_backend.h:76
db_result_list_t * db_backend_read(const db_backend_t *backend, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
Definition: db_backend.c:405
int(* db_backend_handle_delete_t)(void *data, const db_object_t *object, const db_clause_list_t *clause_list)
Definition: db_backend.h:121
int db_backend_handle_create(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
Definition: db_backend.c:93
int db_backend_handle_set_transaction_rollback(db_backend_handle_t *backend_handle, db_backend_handle_transaction_rollback_t transaction_rollback_function)
Definition: db_backend.c:286
db_result_list_t *(* db_backend_handle_read_t)(void *data, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
Definition: db_backend.h:99
int(* db_backend_handle_transaction_commit_t)(void *data)
Definition: db_backend.h:155
int(* db_backend_handle_shutdown_t)(void *data)
Definition: db_backend.h:59
int db_backend_create(const db_backend_t *backend, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
Definition: db_backend.c:385
int(* db_backend_handle_transaction_rollback_t)(void *data)
Definition: db_backend.h:163
int db_backend_handle_connect(const db_backend_handle_t *backend_handle, const db_configuration_list_t *configuration_list)
Definition: db_backend.c:79
int db_backend_handle_delete(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_clause_list_t *clause_list)
Definition: db_backend.c:147
db_backend_handle_t * db_backend_handle_new(void)
Definition: db_backend.c:49
int db_backend_handle_set_transaction_commit(db_backend_handle_t *backend_handle, db_backend_handle_transaction_commit_t transaction_commit_function)
Definition: db_backend.c:277
int db_backend_initialize(const db_backend_t *backend)
Definition: db_backend.c:360
void(* db_backend_handle_free_t)(void *data)
Definition: db_backend.h:139
int db_backend_handle_set_transaction_begin(db_backend_handle_t *backend_handle, db_backend_handle_transaction_begin_t transaction_begin_function)
Definition: db_backend.c:268
int db_backend_handle_set_read(db_backend_handle_t *backend_handle, db_backend_handle_read_t read_function)
Definition: db_backend.c:223
int db_backend_set_handle(db_backend_t *backend, db_backend_handle_t *handle)
Definition: db_backend.c:348
int db_backend_handle_set_create(db_backend_handle_t *backend_handle, db_backend_handle_create_t create_function)
Definition: db_backend.c:214
int db_backend_delete(const db_backend_t *backend, const db_object_t *object, const db_clause_list_t *clause_list)
Definition: db_backend.c:439
int db_backend_count(const db_backend_t *backend, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
Definition: db_backend.c:453
int db_backend_handle_set_data(db_backend_handle_t *backend_handle, void *data)
Definition: db_backend.c:295
int db_backend_connect(const db_backend_t *backend, const db_configuration_list_t *configuration_list)
Definition: db_backend.c:371
int(* db_backend_handle_initialize_t)(void *data)
Definition: db_backend.h:51
int db_backend_handle_set_free(db_backend_handle_t *backend_handle, db_backend_handle_free_t free_function)
Definition: db_backend.c:259
int db_backend_handle_set_connect(db_backend_handle_t *backend_handle, db_backend_handle_connect_t connect_function)
Definition: db_backend.c:196
db_backend_handle_read_t read_function
Definition: db_backend.h:176
db_backend_handle_delete_t delete_function
Definition: db_backend.h:178
db_backend_handle_create_t create_function
Definition: db_backend.h:175
db_backend_handle_count_t count_function
Definition: db_backend.h:179
db_backend_handle_shutdown_t shutdown_function
Definition: db_backend.h:172
db_backend_handle_connect_t connect_function
Definition: db_backend.h:173
db_backend_handle_update_t update_function
Definition: db_backend.h:177
db_backend_handle_initialize_t initialize_function
Definition: db_backend.h:171
db_backend_handle_transaction_rollback_t transaction_rollback_function
Definition: db_backend.h:183
db_backend_handle_free_t free_function
Definition: db_backend.h:180
db_backend_handle_transaction_commit_t transaction_commit_function
Definition: db_backend.h:182
db_backend_handle_disconnect_t disconnect_function
Definition: db_backend.h:174
db_backend_handle_transaction_begin_t transaction_begin_function
Definition: db_backend.h:181
char * name
Definition: db_backend.h:386
db_backend_t * next
Definition: db_backend.h:385
db_backend_handle_t * handle
Definition: db_backend.h:387