XROAD
db_engine.h
Go to the documentation of this file.
1 #pragma once
7 #include <common/xroad_xml.h>
8 
9 #ifdef __cplusplus
10 extern "C"
11 {
12 #endif
13 
14 typedef struct db_engine_s db_engine_t;
15 
16 typedef struct
17 {
18  void * ctx;
19  void (*on_data)(db_engine_t* db, void* ctx, const char* data);
21 
22 typedef struct
23 {
24  uint64_t exec_time_usec;
25  int64_t queue_size;
27 
28 typedef struct
29 {
30  void * ctx;
31  void (*on_data)(db_engine_t* db, void* ctx, const void* result);
32  void (*on_success)(db_engine_t* db, void* ctx, db_query_stat_t stat); // fired when qeury execution has been completed succesfully
33  void (*on_failed)(db_engine_t* db, void* ctx, db_query_stat_t stat); // fired if something went wrong with query
35 
36 typedef struct
37 {
38  void * ctx;
39  void (*on_connected)(db_engine_t*, void*);
40  void (*on_disconnected)(db_engine_t*, void*);
42 
43 typedef enum
44 {
45  db_mysql = 1,
46  db_pgsql = 2
47 } db_type_t;
48 
54 db_engine_t* db_engine_create(xroad_xml_tag_t cfg, db_callback_t cb);
55 
61 db_engine_t* db_engine_create_ex(xroad_str_t uri, xroad_str_t encoding, bool async, db_callback_t cb);
62 
67 void db_engine_destroy(db_engine_t * e);
68 
74 xroad_errno_t db_engine_start(db_engine_t* e);
75 
80 void db_engine_stop(db_engine_t* e);
81 
88 xroad_errno_t db_engine_send(db_engine_t* e, xroad_str_t q);
89 
96 xroad_errno_t db_engine_query(db_engine_t* e, xroad_str_t q, db_result_callback_t cb);
97 
104 xroad_errno_t db_engine_query_bypass(db_engine_t* e, xroad_str_t q, db_result_callback_t cb);
105 
113 xroad_errno_t db_engine_query_ex(db_engine_t* e, xroad_str_t q, bool queue_bypass, db_result_callback_t cb);
114 
122 xroad_errno_t db_engine_subscribe(db_engine_t* e, xroad_str_t q, db_notification_t cb);
123 
131 xroad_errno_t db_engine_unsubscribe(db_engine_t* e, xroad_str_t q, db_notification_t cb);
132 
137 db_type_t db_engine_get_type(db_engine_t* e);
138 
143 bool db_engine_is_busy(db_engine_t* e);
144 
149 uint32_t db_engine_get_queue_size(db_engine_t* e);
150 
151 #ifdef __cplusplus
152 }
153 #endif
void db_engine_stop(db_engine_t *e)
db_type_t db_engine_get_type(db_engine_t *e)
xroad_errno_t db_engine_start(db_engine_t *e)
bool db_engine_is_busy(db_engine_t *e)
db_engine_t * db_engine_create(xroad_xml_tag_t cfg, db_callback_t cb)
xroad_errno_t db_engine_send(db_engine_t *e, xroad_str_t q)
xroad_errno_t db_engine_query_ex(db_engine_t *e, xroad_str_t q, bool queue_bypass, db_result_callback_t cb)
xroad_errno_t db_engine_subscribe(db_engine_t *e, xroad_str_t q, db_notification_t cb)
void db_engine_destroy(db_engine_t *e)
xroad_errno_t db_engine_query_bypass(db_engine_t *e, xroad_str_t q, db_result_callback_t cb)
xroad_errno_t db_engine_unsubscribe(db_engine_t *e, xroad_str_t q, db_notification_t cb)
xroad_errno_t db_engine_query(db_engine_t *e, xroad_str_t q, db_result_callback_t cb)
db_engine_t * db_engine_create_ex(xroad_str_t uri, xroad_str_t encoding, bool async, db_callback_t cb)
uint32_t db_engine_get_queue_size(db_engine_t *e)
Definition: db_engine.h:37
Definition: db_engine.h:17
Definition: db_engine.h:23
Definition: db_engine.h:29
Definition: xroad_string.h:29