|
// retoor <retoor@molodetz.nl>
|
|
|
|
#ifndef R_DB_H
|
|
#define R_DB_H
|
|
|
|
#include "r_error.h"
|
|
#include <json-c/json.h>
|
|
|
|
typedef struct db_t *db_handle;
|
|
|
|
db_handle db_open(const char *path);
|
|
void db_close(db_handle db);
|
|
|
|
r_status_t db_init(db_handle db);
|
|
r_status_t db_kv_set(db_handle db, const char *key, const char *value);
|
|
r_status_t db_kv_get(db_handle db, const char *key, char **value);
|
|
r_status_t db_execute(db_handle db, const char *sql, struct json_object **result);
|
|
|
|
char *db_get_schema(db_handle db);
|
|
r_status_t db_store_file_version(db_handle db, const char *path);
|
|
r_status_t db_save_conversation(db_handle db, const char *session_key, const char *data);
|
|
r_status_t db_load_conversation(db_handle db, const char *session_key, char **data);
|
|
long long db_get_conversation_age(db_handle db, const char *session_key);
|
|
r_status_t db_delete_conversation(db_handle db, const char *session_key);
|
|
|
|
r_status_t db_snapshot_create(db_handle db, const char *session_id, const char *description,
|
|
const char **paths, const char **contents, int file_count,
|
|
long long *snapshot_id_out);
|
|
r_status_t db_snapshot_list(db_handle db, const char *session_id, struct json_object **result);
|
|
r_status_t db_snapshot_get_files(db_handle db, long long snapshot_id, struct json_object **result);
|
|
|
|
r_status_t db_snapshot_ensure_live(db_handle db, const char *session_id,
|
|
const char *description, long long *snapshot_id_out);
|
|
r_status_t db_snapshot_upsert_file(db_handle db, long long snapshot_id,
|
|
const char *path, const char *content);
|
|
|
|
#endif
|