chore: modify to use struct and fix makefile
This commit is contained in:
parent
a736a26532
commit
b467a09940
|
@ -4,7 +4,7 @@
|
|||
INCS = -I./ -I/opt/homebrew/include/ -I./vendor/lmdbxx/include/
|
||||
TARGET = libnegentropy.so
|
||||
|
||||
.PHONY: all clean install-deps
|
||||
.PHONY: all clean install-deps precompiled-header shared-lib
|
||||
|
||||
all: precompiled-header shared-lib
|
||||
|
||||
|
@ -16,7 +16,7 @@ install-deps:
|
|||
precompiled-header:
|
||||
g++ --std=c++20 -Wall -fexceptions -g negentropy.h $(INCS)
|
||||
|
||||
shared-lib: negentropy.h.gch
|
||||
shared-lib:
|
||||
g++ --std=c++20 $(INCS) -shared -fPIC -o $(TARGET) negentropy_wrapper.c -lcrypto -lssl -L/opt/homebrew/lib/
|
||||
|
||||
clean:
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <iostream>
|
||||
|
||||
#include "negentropy.h"
|
||||
#include "negentropy/storage/BTreeMem.h"
|
||||
#include "negentropy_wrapper.h"
|
||||
|
@ -5,7 +7,7 @@
|
|||
//This is a C-wrapper for the C++ library that helps in integrating negentropy with nim code.
|
||||
//TODO: Do error handling by catching exceptions
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
void* storage_new(const char* db_path, const char* name){
|
||||
negentropy::storage::BTreeMem* storage;
|
||||
|
@ -65,32 +67,32 @@ void negentropy_setinitiator(void* negentropy){
|
|||
}
|
||||
|
||||
|
||||
bool storage_insert(void* storage, uint64_t createdAt, const char* id){
|
||||
bool storage_insert(void* storage, uint64_t createdAt, buffer* id){
|
||||
negentropy::storage::BTreeMem* lmdbStorage;
|
||||
lmdbStorage = reinterpret_cast<negentropy::storage::BTreeMem*>(storage);
|
||||
|
||||
std::cout << "inserting entry in storage, createdAt:" << createdAt << ",id:" << std::string_view(id->data, id->len) << "length is:"<< id->len << std::endl;
|
||||
//TODO: Error handling. Is it required?
|
||||
//How does out of memory get handled?
|
||||
return lmdbStorage->insert(createdAt, id);
|
||||
return lmdbStorage->insert(createdAt, std::string_view(id->data, id->len));
|
||||
}
|
||||
|
||||
|
||||
bool storage_erase(void* storage, uint64_t createdAt, const char* id){
|
||||
bool storage_erase(void* storage, uint64_t createdAt, buffer* id){
|
||||
negentropy::storage::BTreeMem* lmdbStorage;
|
||||
lmdbStorage = reinterpret_cast<negentropy::storage::BTreeMem*>(storage);
|
||||
|
||||
//TODO: Error handling
|
||||
return lmdbStorage->erase(createdAt, id);
|
||||
return lmdbStorage->erase(createdAt, std::string_view(id->data, id->len));
|
||||
}
|
||||
|
||||
|
||||
const char* reconcile(void* negentropy, const char* query, uint64_t query_len){
|
||||
const char* reconcile(void* negentropy, buffer* query){
|
||||
Negentropy<negentropy::storage::BTreeMem> *ngn_inst;
|
||||
ngn_inst = reinterpret_cast<Negentropy<negentropy::storage::BTreeMem>*>(negentropy);
|
||||
|
||||
std::string* output = new std::string();
|
||||
try {
|
||||
*output = ngn_inst->reconcile(std::string_view(query, query_len));
|
||||
*output = ngn_inst->reconcile(std::string_view(query->data, query->len));
|
||||
} catch(negentropy::err e){
|
||||
//TODO:Find a way to return this error
|
||||
return NULL;
|
||||
|
@ -105,7 +107,7 @@ char *convert(const std::string & s)
|
|||
return pc;
|
||||
}
|
||||
|
||||
const char* reconcile_with_ids(void* negentropy, const char* query, uint64_t query_len, char* have_ids[],
|
||||
const char* reconcile_with_ids(void* negentropy, buffer* query, char* have_ids[],
|
||||
uint64_t *have_ids_len, char* need_ids[], uint64_t *need_ids_len){
|
||||
Negentropy<negentropy::storage::BTreeMem> *ngn_inst;
|
||||
ngn_inst = reinterpret_cast<Negentropy<negentropy::storage::BTreeMem>*>(negentropy);
|
||||
|
@ -115,7 +117,7 @@ const char* reconcile_with_ids(void* negentropy, const char* query, uint64_t que
|
|||
std::vector<std::string> needIds;
|
||||
|
||||
try {
|
||||
*output = ngn_inst->reconcile(std::string_view(query, query_len), haveIds, needIds);
|
||||
*output = ngn_inst->reconcile(std::string_view(query->data, query->len), haveIds, needIds);
|
||||
|
||||
*have_ids_len = haveIds.size();
|
||||
*need_ids_len = needIds.size();
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
#define EXTERNC
|
||||
#endif
|
||||
|
||||
typedef struct _buffer_{
|
||||
uint64_t len ;
|
||||
char* data;
|
||||
}buffer;
|
||||
|
||||
//This is a C-wrapper for the C++ library that helps in integrating negentropy with nim code.
|
||||
//TODO: Do error handling by catching exceptions
|
||||
|
||||
|
@ -19,13 +24,13 @@ EXTERNC const char* negentropy_initiate(void* negentropy);
|
|||
|
||||
EXTERNC void negentropy_setinitiator(void* negentropy);
|
||||
|
||||
EXTERNC bool storage_insert(void* storage, uint64_t createdAt, const char* id);
|
||||
EXTERNC bool storage_insert(void* storage, uint64_t createdAt, buffer* id);
|
||||
|
||||
EXTERNC bool storage_erase(void* storage, uint64_t createdAt, const char* id);
|
||||
EXTERNC bool storage_erase(void* storage, uint64_t createdAt, buffer* id);
|
||||
|
||||
EXTERNC const char* reconcile(void* negentropy, const char* query, uint64_t query_len);
|
||||
EXTERNC const char* reconcile(void* negentropy, buffer* query);
|
||||
|
||||
EXTERNC const char* reconcile_with_ids(void* negentropy, const char* query, uint64_t query_len, const char* have_ids[],
|
||||
EXTERNC const char* reconcile_with_ids(void* negentropy, buffer* query, const char* have_ids[],
|
||||
uint64_t *have_ids_len, const char* need_ids[], uint64_t *need_ids_len);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue