XROAD
db_engine.h File Reference
#include <common/xroad_xml.h>
Include dependency graph for db_engine.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  db_notification_t
 
struct  db_query_stat_t
 
struct  db_result_callback_t
 
struct  db_callback_t
 

Typedefs

typedef struct db_engine_s db_engine_t
 

Enumerations

enum  db_type_t { db_mysql = 1 , db_pgsql = 2 }
 

Functions

db_engine_t * db_engine_create (xroad_xml_tag_t cfg, db_callback_t cb)
 
db_engine_t * db_engine_create_ex (xroad_str_t uri, xroad_str_t encoding, bool async, db_callback_t cb)
 
void db_engine_destroy (db_engine_t *e)
 
xroad_errno_t db_engine_start (db_engine_t *e)
 
void db_engine_stop (db_engine_t *e)
 
xroad_errno_t db_engine_send (db_engine_t *e, xroad_str_t q)
 
xroad_errno_t db_engine_query (db_engine_t *e, xroad_str_t q, db_result_callback_t cb)
 
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_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)
 
xroad_errno_t db_engine_unsubscribe (db_engine_t *e, xroad_str_t q, db_notification_t cb)
 
db_type_t db_engine_get_type (db_engine_t *e)
 
bool db_engine_is_busy (db_engine_t *e)
 
uint32_t db_engine_get_queue_size (db_engine_t *e)
 

Detailed Description

Function Documentation

◆ db_engine_create()

db_engine_t* db_engine_create ( xroad_xml_tag_t  cfg,
db_callback_t  cb 
)

creates new db_engine instance

Parameters
[in]cfg- db_engine config
Returns
pointer to new instance, NULL - error

◆ db_engine_create_ex()

db_engine_t* db_engine_create_ex ( xroad_str_t  uri,
xroad_str_t  encoding,
bool  async,
db_callback_t  cb 
)

creates new db_engine instance

Parameters
[in]cfg- db_engine config
Returns
pointer to new instance, NULL - error

◆ db_engine_destroy()

void db_engine_destroy ( db_engine_t *  e)

destroys db_engine instance

Parameters
[in]e- pointer to db_engine

◆ db_engine_get_queue_size()

uint32_t db_engine_get_queue_size ( db_engine_t *  e)

returns queue_size

Returns
queue size

◆ db_engine_get_type()

db_type_t db_engine_get_type ( db_engine_t *  e)

returns db type

Returns
type of underlying connection

◆ db_engine_is_busy()

bool db_engine_is_busy ( db_engine_t *  e)

returns is_busy

Returns
is busy

◆ db_engine_query()

xroad_errno_t db_engine_query ( db_engine_t *  e,
xroad_str_t  q,
db_result_callback_t  cb 
)

sends query to database

Parameters
[in]e- pointer to db_engine_send
[in]q- query string
Returns
XROAD_OK if success, otherwise XROAD_FAILED

◆ db_engine_query_bypass()

xroad_errno_t db_engine_query_bypass ( db_engine_t *  e,
xroad_str_t  q,
db_result_callback_t  cb 
)

sends query to database bypassing the queue

Parameters
[in]e- pointer to db_engine_send
[in]q- query string
Returns
XROAD_OK if success, otherwise XROAD_FAILED

◆ db_engine_query_ex()

xroad_errno_t db_engine_query_ex ( db_engine_t *  e,
xroad_str_t  q,
bool  queue_bypass,
db_result_callback_t  cb 
)

sends query to database

Parameters
[in]e- pointer to db_engine_send
[in]q- query string
[in]queue_bypass- bypassing the queue
Returns
XROAD_OK if success, otherwise XROAD_FAILED

◆ db_engine_send()

xroad_errno_t db_engine_send ( db_engine_t *  e,
xroad_str_t  q 
)

sends query to database

Parameters
[in]e- pointer to db_engine_send
[in]q- query string
Returns
XROAD_OK if success, otherwise XROAD_FAILED

◆ db_engine_start()

xroad_errno_t db_engine_start ( db_engine_t *  e)

connects db_engine to database

Parameters
[in]e- pointer to db_engine
Returns
XROAD_OK if success, otherwise XROAD_FAILED

◆ db_engine_stop()

void db_engine_stop ( db_engine_t *  e)

disconnects db_engine from database

Parameters
[in]e- pointer to db_engine

◆ db_engine_subscribe()

xroad_errno_t db_engine_subscribe ( db_engine_t *  e,
xroad_str_t  q,
db_notification_t  cb 
)

subscribes to notification on topic

Parameters
[in]e- pointer to db_engine_send
[in]q- topic
[in]cb- notification callback
Returns
XROAD_OK if success, otherwise XROAD_FAILED

◆ db_engine_unsubscribe()

xroad_errno_t db_engine_unsubscribe ( db_engine_t *  e,
xroad_str_t  q,
db_notification_t  cb 
)

unsubscribes from notification on topic

Parameters
[in]e- pointer to db_engine_send
[in]q- topic
[in]cb- notification callback
Returns
XROAD_OK if success, otherwise XROAD_FAILED