forked from cory/tildefriends
Cory McWilliams
f7d201859a
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4401 ed5197a5-7fde-0310-b194-c3ffbd925b24
63 lines
3.3 KiB
C
63 lines
3.3 KiB
C
#pragma once
|
|
|
|
#include "ssb.h"
|
|
|
|
#include "quickjs.h"
|
|
|
|
#include <stdbool.h>
|
|
|
|
typedef struct _tf_ssb_t tf_ssb_t;
|
|
|
|
void tf_ssb_db_init(tf_ssb_t* ssb);
|
|
void tf_ssb_db_init_reader(sqlite3* db);
|
|
bool tf_ssb_db_message_content_get(tf_ssb_t* ssb, const char* id, uint8_t** out_blob, size_t* out_size);
|
|
bool tf_ssb_db_blob_has(tf_ssb_t* ssb, const char* id);
|
|
bool tf_ssb_db_blob_get(tf_ssb_t* ssb, const char* id, uint8_t** out_blob, size_t* out_size);
|
|
|
|
typedef void (tf_ssb_db_store_message_callback_t)(const char* id, bool stored, void* user_data);
|
|
void tf_ssb_db_store_message(tf_ssb_t* ssb, JSContext* context, const char* id, JSValue val, const char* signature, bool sequence_before_author, tf_ssb_db_store_message_callback_t* callback, void* user_data);
|
|
|
|
typedef void (tf_ssb_db_blob_store_callback_t)(const char* id, bool is_new, void* user_data);
|
|
void tf_ssb_db_blob_store_async(tf_ssb_t* ssb, const uint8_t* blob, size_t size, tf_ssb_db_blob_store_callback_t* callback, void* user_data);
|
|
bool tf_ssb_db_blob_store(tf_ssb_t* ssb, const uint8_t* blob, size_t size, char* out_id, size_t out_id_size, bool* out_new);
|
|
|
|
JSValue tf_ssb_db_get_message_by_id( tf_ssb_t* ssb, const char* id, bool is_keys);
|
|
bool tf_ssb_db_get_message_by_author_and_sequence(tf_ssb_t* ssb, const char* author, int64_t sequence, char* out_message_id, size_t out_message_id_size, double* out_timestamp, char** out_content);
|
|
bool tf_ssb_db_get_latest_message_by_author(tf_ssb_t* ssb, const char* author, int64_t* out_sequence, char* out_message_id, size_t out_message_id_size);
|
|
JSValue tf_ssb_db_visit_query(tf_ssb_t* ssb, const char* query, const JSValue binds, void (*callback)(JSValue row, void* user_data), void* user_data);
|
|
|
|
typedef struct sqlite3 sqlite3;
|
|
bool tf_ssb_db_check(sqlite3* db, const char* author);
|
|
|
|
int tf_ssb_db_identity_get_count_for_user(tf_ssb_t* ssb, const char* user);
|
|
bool tf_ssb_db_identity_create(tf_ssb_t* ssb, const char* user, uint8_t* out_public_key, uint8_t* out_private_key);
|
|
bool tf_ssb_db_identity_add(tf_ssb_t* ssb, const char* user, const char* public_key, const char* private_key);
|
|
void tf_ssb_db_identity_visit(tf_ssb_t* ssb, const char* user, void (*callback)(const char* identity, void* user_data), void* user_data);
|
|
void tf_ssb_db_identity_visit_all(tf_ssb_t* ssb, void (*callback)(const char* identity, void* user_data), void* user_data);
|
|
bool tf_ssb_db_identity_get_private_key(tf_ssb_t* ssb, const char* user, const char* public_key, uint8_t* out_private_key, size_t private_key_size);
|
|
|
|
JSValue tf_ssb_format_message(
|
|
JSContext* context,
|
|
const char* previous,
|
|
const char* author,
|
|
int64_t sequence,
|
|
double timestamp,
|
|
const char* hash,
|
|
const char* content,
|
|
const char* signature,
|
|
bool sequence_before_author);
|
|
const char** tf_ssb_db_following_deep(tf_ssb_t* ssb, const char** ids, int count, int depth);
|
|
const char** tf_ssb_db_get_all_visible_identities(tf_ssb_t* ssb, int depth);
|
|
|
|
typedef struct _tf_ssb_db_stored_connection_t
|
|
{
|
|
char address[256];
|
|
int port;
|
|
char pubkey[k_id_base64_len];
|
|
} tf_ssb_db_stored_connection_t;
|
|
|
|
tf_ssb_db_stored_connection_t* tf_ssb_db_get_stored_connections(tf_ssb_t* ssb, int* out_count);
|
|
void tf_ssb_db_forget_stored_connection(tf_ssb_t* ssb, const char* address, int port, const char* pubkey);
|
|
|
|
int tf_ssb_sqlite_authorizer(void* user_data, int action_code, const char* arg0, const char* arg1, const char* arg2, const char* arg3);
|