base_lmdb_store.pxd 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from lakesuperior.cy_include cimport cylmdb as lmdb
  2. ctypedef char DbLabel[8]
  3. cdef:
  4. int rc
  5. size_t i
  6. lmdb.MDB_val key_v, data_v
  7. lmdb.MDB_dbi dbi
  8. void _check(int rc, str message=*) except *
  9. cdef class BaseLmdbStore:
  10. cdef:
  11. readonly bint is_txn_open
  12. readonly bint is_txn_rw
  13. public bint _open
  14. unsigned int _readers
  15. readonly str env_path
  16. lmdb.MDB_dbi *dbis
  17. lmdb.MDB_env *dbenv
  18. lmdb.MDB_txn *txn
  19. lmdb.MDB_cursor **curs
  20. void _clear_stale_readers(self) except *
  21. void _cur_close(self, lmdb.MDB_cursor *cur) except *
  22. void _init_dbis(self, create=*) except *
  23. void _txn_begin(self, write=*, lmdb.MDB_txn *parent=*) except *
  24. void _txn_commit(self) except *
  25. void _txn_abort(self) except *
  26. inline bint _key_exists(
  27. self, unsigned char *key, unsigned char klen, DbLabel dblabel=*
  28. ) except -1
  29. size_t _txn_id(self) except -1
  30. lmdb.MDB_cursor *_cur_open(
  31. self, DbLabel dblabel=*, lmdb.MDB_txn *txn=*
  32. ) except *
  33. lmdb.MDB_dbi get_dbi(
  34. self, DbLabel dblabel=*, lmdb.MDB_txn *txn=*)
  35. void _put(
  36. self, unsigned char *key, size_t key_size, unsigned char *data,
  37. size_t data_size, DbLabel dblabel=*,
  38. lmdb.MDB_txn *txn=*, unsigned int flags=*) except *
  39. void _get_data(
  40. self, unsigned char *key, size_t klen, lmdb.MDB_val *rv,
  41. DbLabel dblabel=*) except *
  42. void _delete(
  43. self, unsigned char *key, size_t klen,
  44. DbLabel dblabel=*) except *
  45. dict _stats(self)
  46. #int _reader_list_callback(self, const unsigned char *msg, void *str_)
  47. cpdef void close_env(self, bint commit_pending_transaction=*) except *
  48. cpdef void destroy(self, _path=*) except *
  49. #cpdef get_dup_data(self, unsigned char *key, db=*)
  50. #cpdef get_all_pairs(self, db=*)
  51. cpdef bytes get_data(self, key, DbLabel dblabel=*)
  52. cpdef dict stats(self)
  53. cpdef int txn_id(self)
  54. #cpdef str reader_list(self)