flashdb.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import _flashdb
  2. import struct
  3. KVDB_CTRL = _flashdb.KVDB_CTRL()
  4. class KVDB(_flashdb.KVDB):
  5. def get_blob(self, key, size):
  6. res = super().get_blob(key, size)
  7. if type(res) == list:
  8. return bytes(res)
  9. return None
  10. def set_by_fmt(self, key, v, fmt):
  11. if type(v) == list or type(v) == tuple:
  12. blob = struct.pack(fmt, *v)
  13. return super().set_blob(key, blob)
  14. if type(v) == type(0):
  15. blob = struct.pack(fmt, v)
  16. return super().set_blob(key, blob)
  17. def get_by_fmt(self, key, size, fmt):
  18. res = super().get_blob(key, size)
  19. if res is None:
  20. return None
  21. vs = struct.unpack(fmt, bytes(res))
  22. if len(vs) == 1:
  23. return vs[0]
  24. return vs
  25. class TSDB(_flashdb.TSDB):
  26. def __init__(self, name: str, path: str, max_len: int = 1024,
  27. user_data=None):
  28. super().__init__(name, path, max_len, user_data)
  29. def tsl_iter_by_time(self, from_time, to_time,
  30. callback: any, user_data: any) -> int:
  31. print('tsl_iter_by_time')
  32. print('from_time:', from_time)
  33. print('to_time:', to_time)
  34. return super().tsl_iter_by_time(from_time, to_time, callback, user_data)
  35. class TSL(_flashdb.TSL):
  36. pass