![]() |
DVBCore
22.3.0
Open Source DVB Engine
|
Records can be created, updated and deleted in-memory, these operations may optionally be recorded so that changes can be compared with and saved into another database. More...
Go to the source code of this file.
Classes | |
struct | S_DATA_TYPE |
struct | S_COLUMN |
struct | S_TABLE |
struct | S_FIELD |
struct | s_record |
Macros | |
#define | ARRAY_LENGTH(X) (sizeof(X)/sizeof(*X)) |
#define | INITIAL_VERSION 0 |
Typedefs | |
typedef struct s_record | S_RECORD |
Enumerations | |
enum | OPERATION_TYPE { OPERATION_NONE, OPERATION_UPDATE, OPERATION_CREATE, OPERATION_DELETE } |
Functions | |
BOOLEAN | Database_Initialise (void) |
Initialise runtime database. More... | |
void | Database_Uninitialise (void) |
Uninitialise runtime database. | |
void | Database_Clear (void) |
Clear runtime database. | |
const S_TABLE * | Database_GetTable (U32BIT record_type) |
Get table with given 'record_type'. More... | |
const S_COLUMN * | Database_GetColumn (const S_TABLE *table, U32BIT field_type) |
Get column in 'table' with given 'field_type'. More... | |
S_RECORD * | Database_GetRecord (const S_TABLE *table, const S_RECORD *prev, BOOLEAN exclude_deleted) |
Get record in 'table' after 'prev' or first record if 'prev' is NULL. More... | |
S_RECORD * | Database_FindRecord (const S_TABLE *table, sqlite3_int64 id) |
Find record in 'table' with given 'id'. More... | |
S_FIELD * | Database_GetField (S_RECORD *record, const S_COLUMN *column) |
Get field from 'column' in given 'record'. More... | |
S_RECORD * | Database_CreateRecord (const S_TABLE *table, S_RECORD *parent) |
Create database record of type 'table' with optional 'parent'. More... | |
BOOLEAN | Database_DeleteRecord (S_RECORD *record) |
Free 'record' buffers and mark as deleted. If not created in SQLite 'record' is destroyed automatically, otherwise it must be manually destroyed once deleted from SQLite. More... | |
void | Database_DestroyRecord (S_RECORD *record) |
Destroy deleted 'record'. More... | |
void | Database_AddRecordOperation (S_RECORD *record, OPERATION_TYPE operation) |
Add record operation (except delete). Operations are merged. More... | |
void | Database_ClearRecordOperation (S_RECORD *record) |
Clear the record operation. More... | |
S_RECORD * | Database_GetRecordParent (S_RECORD *record) |
Get parent of 'record'. More... | |
void | Database_SetRecordParent (S_RECORD *record, S_RECORD *parent) |
Set the parent of 'record'. More... | |
U32BIT | Database_GetRecordFieldUInt (S_FIELD *field) |
Get uint value of 'field'. More... | |
void | Database_SetRecordFieldUInt (S_FIELD *field, U32BIT value) |
Set uint value of 'field'. More... | |
const char * | Database_GetRecordFieldText (S_FIELD *field, U32BIT *size) |
Get text value of 'field'. More... | |
void | Database_SetRecordFieldText (S_FIELD *field, const unsigned char *value, U32BIT size) |
Set text value of 'field'. More... | |
const void * | Database_GetRecordFieldBlob (S_FIELD *field, U32BIT *size) |
Get blob value of 'field'. More... | |
void | Database_SetRecordFieldBlob (S_FIELD *field, const void *value, U32BIT size) |
Set blob value of 'field'. More... | |
Variables | |
const S32BIT | database_layout_version |
const S_DATA_TYPE | database_type_uint |
const S_DATA_TYPE | database_type_text |
const S_DATA_TYPE | database_type_blob |
const S_TABLE | database_layout [] |
const U32BIT | database_layout_length |
Records can be created, updated and deleted in-memory, these operations may optionally be recorded so that changes can be compared with and saved into another database.
void Database_AddRecordOperation | ( | S_RECORD * | record, |
OPERATION_TYPE | operation | ||
) |
Add record operation (except delete). Operations are merged.
record | Database record (must not be not deleted) |
operation | Record operation (must not be delete) |
void Database_ClearRecordOperation | ( | S_RECORD * | record | ) |
Clear the record operation.
record | Database record (must not be not deleted) |
Create database record of type 'table' with optional 'parent'.
table | Database table |
parent | Parent database record (suitable for type 'table') or NULL |
BOOLEAN Database_DeleteRecord | ( | S_RECORD * | record | ) |
Free 'record' buffers and mark as deleted. If not created in SQLite 'record' is destroyed automatically, otherwise it must be manually destroyed once deleted from SQLite.
record | Database record |
void Database_DestroyRecord | ( | S_RECORD * | record | ) |
Destroy deleted 'record'.
record | Database record (must be deleted but not already destroyed) |
Find record in 'table' with given 'id'.
table | Database table |
id | Record id |
Get column in 'table' with given 'field_type'.
table | Database table |
field_type | Field type (see database/inc/dba.h) |
Get field from 'column' in given 'record'.
record | Database record (must not be deleted) |
column | Database column (must exist in 'record') |
S_RECORD* Database_GetRecord | ( | const S_TABLE * | table, |
const S_RECORD * | prev, | ||
BOOLEAN | exclude_deleted | ||
) |
Get record in 'table' after 'prev' or first record if 'prev' is NULL.
table | Database table |
prev | Database record or NULL |
exclude_delete | Exclude deleted records |
const void* Database_GetRecordFieldBlob | ( | S_FIELD * | field, |
U32BIT * | size | ||
) |
Get blob value of 'field'.
field | Database field |
size | Size out |
const char* Database_GetRecordFieldText | ( | S_FIELD * | field, |
U32BIT * | size | ||
) |
Get text value of 'field'.
field | Database field |
size | Size out |
U32BIT Database_GetRecordFieldUInt | ( | S_FIELD * | field | ) |
Get uint value of 'field'.
field | Database field |
Get parent of 'record'.
record | Database record (must not be not deleted) |
const S_TABLE* Database_GetTable | ( | U32BIT | record_type | ) |
Get table with given 'record_type'.
record_type | Record type (see database/inc/dba.h) |
BOOLEAN Database_Initialise | ( | void | ) |
Initialise runtime database.
void Database_SetRecordFieldBlob | ( | S_FIELD * | field, |
const void * | value, | ||
U32BIT | size | ||
) |
Set blob value of 'field'.
field | Database field |
value | Blob value |
size | Blob value size |
void Database_SetRecordFieldText | ( | S_FIELD * | field, |
const unsigned char * | value, | ||
U32BIT | size | ||
) |
Set text value of 'field'.
field | Database field |
value | Text value |
size | Text value size (including terminating null character) |
void Database_SetRecordFieldUInt | ( | S_FIELD * | field, |
U32BIT | value | ||
) |
Set uint value of 'field'.
field | Database field |
value | Uint value |