C++
Primero siga las instrucciones para compilar e instalar LiteSync desde el código fuente o use los binarios precompilados para su plataforma. Puede comenzar con la versión gratuita.
Código de ejemplo
#include <sqlite_modern_cpp.h>
#include <thread>
#include <chrono>
#include <iostream>
using namespace sqlite;
int main() {
try {
// abrir la base de datos
database db("file:app.db?node=secondary&connect=tcp://server:port");
// esperar hasta que la base de datos esté lista
while(1) {
string status;
db << "pragma sync_status" >> status;
std::cout << "estado : " << status << std::endl;
if (status.find("\"db_is_ready\": true") != string::npos) break;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
// ahora podemos usar la conexión a la base de datos
...
}
catch (std::exception& e) {
std::cerr << e.what() << std::endl;
}
}
Notificación de Actualización
Su aplicación puede ser notificada cuando la base de datos local se actualiza debido a la sincronización con nodos remotos. La notificación se realiza a través de una función definida por el usuario.
db.define("update_notification", [](std::string changes) {
std::cout << "actualización recibida: " << changes << std::endl;
});
Notificación de Transacción
Su aplicación puede ser notificada cuando las transacciones locales se sincronizan con nodos remotos. La notificación se realiza a través de una función definida por el usuario. Si el valor en el argumento `result` no es "OK", entonces contiene el mensaje de error.
db.define("transaction_notification", [](std::string sql, std::string result) {
std::cout << "Transacción sincronizada (" << result << "): " << sql << std::endl;
});
Estado de Sincronización
Su aplicación puede verificar el estado de sincronización de la base de datos local con los nodos remotos.
std::string status;
db << "pragma sync_status" >> status;
std::cout << "estado de sincronización: " << status << std::endl;
ATENCIÓN: Las funciones de notificación son llamadas por el hilo de trabajo. La aplicación NO debe usar la conexión db dentro de las funciones de notificación y debe retornar lo más rápido posible. La aplicación puede transferir la notificación al hilo principal antes de retornar.
Compilación
g++ -o app app.cpp -std=c++14 -llitesync