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