sq_sqlite3.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef SQ_SQLITE3_H
  2. #define SQ_SQLITE3_H
  3. #include "squirrel.h"
  4. #include "sqlite3.h"
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include "sqstdblobimpl.h"
  8. typedef struct sq_sqlite3_sdb sq_sqlite3_sdb;
  9. typedef struct sq_sqlite3_sdb_func sq_sqlite3_sdb_func;
  10. /* to use as C user data so i know what function sqlite is calling */
  11. struct sq_sqlite3_sdb_func
  12. {
  13. /* references to associated lua values */
  14. HSQOBJECT fn_step;
  15. HSQOBJECT fn_finalize;
  16. HSQOBJECT udata;
  17. sq_sqlite3_sdb *sdb;
  18. sq_sqlite3_sdb_func *next;
  19. };
  20. /* information about database */
  21. struct sq_sqlite3_sdb
  22. {
  23. /* associated squirrel vm */
  24. HSQUIRRELVM v;
  25. /* sqlite database handle */
  26. sqlite3 *db;
  27. /* sql functions stack usage */
  28. sq_sqlite3_sdb_func *func; /* top SQL function being called */
  29. /* references */
  30. HSQOBJECT busy_cb; /* busy callback */
  31. HSQOBJECT busy_udata;
  32. HSQOBJECT progress_cb; /* progress handler */
  33. HSQOBJECT progress_udata;
  34. HSQOBJECT trace_cb; /* trace callback */
  35. HSQOBJECT trace_udata;
  36. HSQOBJECT update_hook_cb; /* update hook callback */
  37. HSQOBJECT update_hook_udata;
  38. HSQOBJECT authorizer_hook_cb; /* update hook callback */
  39. HSQOBJECT authorizer_hook_udata;
  40. HSQOBJECT null_value;
  41. };
  42. extern const SQChar *SQLite3_TAG;
  43. #endif // SQ_SQLITE3_H