forked from OP-Engineering/op-sqlite
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbridge.h
More file actions
91 lines (66 loc) · 3.23 KB
/
bridge.h
File metadata and controls
91 lines (66 loc) · 3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#pragma once
#include "DumbHostObject.h"
#include "SmartHostObject.h"
#include "libsql.h"
#include "types.h"
#include "utils.h"
#include <vector>
#define LIBSQL_INT 1
#define LIBSQL_FLOAT 2
#define LIBSQL_TEXT 3
#define LIBSQL_BLOB 4
#define LIBSQL_NULL 5
namespace opsqlite {
namespace jsi = facebook::jsi;
/// Convenience types to avoid super long types
typedef std::function<void(std::string dbName, std::string table_name,
std::string operation, int row_id)>
UpdateCallback;
typedef std::function<void(std::string dbName)> CommitCallback;
typedef std::function<void(std::string dbName)> RollbackCallback;
struct DB {
libsql_database_t db;
libsql_connection_t c;
};
std::string opsqlite_get_db_path(std::string const &name,
std::string const &location);
DB opsqlite_libsql_open(std::string const &name, std::string const &path,
std::string const &crsqlitePath);
DB opsqlite_libsql_open_remote(std::string const &url,
std::string const &auth_token);
DB opsqlite_libsql_open_sync(std::string const &name, std::string const &path,
std::string const &url,
std::string const &auth_token, int sync_interval,
bool offline, std::string const &encryption_key,
std::string const &remote_encryption_key);
void opsqlite_libsql_close(DB &db);
void opsqlite_libsql_remove(DB &db, std::string const &name,
std::string const &path);
void opsqlite_libsql_attach(DB const &db, std::string const &docPath,
std::string const &databaseToAttach,
std::string const &alias);
void opsqlite_libsql_detach(DB const &db, std::string const &alias);
int32_t opsqlite_libsql_get_reserved_bytes(DB const &db);
void opsqlite_libsql_set_reserved_bytes(DB const &db, int32_t reserved_bytes);
void opsqlite_libsql_sync(DB const &db);
BridgeResult opsqlite_libsql_execute(DB const &db, std::string const &query,
const std::vector<JSVariant> *params);
BridgeResult opsqlite_libsql_execute_with_host_objects(
DB const &db, std::string const &query,
const std::vector<JSVariant> *params, std::vector<DumbHostObject> *results,
const std::shared_ptr<std::vector<SmartHostObject>> &metadatas);
BridgeResult
opsqlite_libsql_execute_raw(DB const &db, std::string const &query,
const std::vector<JSVariant> *params,
std::vector<std::vector<JSVariant>> *results);
BatchResult
opsqlite_libsql_execute_batch(DB const &db,
const std::vector<BatchArguments> *commands);
libsql_stmt_t opsqlite_libsql_prepare_statement(DB const &db,
std::string const &query);
void opsqlite_libsql_bind_statement(libsql_stmt_t stmt,
const std::vector<JSVariant> *params);
BridgeResult opsqlite_libsql_execute_prepared_statement(
DB const &db, libsql_stmt_t stmt, std::vector<DumbHostObject> *results,
const std::shared_ptr<std::vector<SmartHostObject>> &metadatas);
} // namespace opsqlite