cache.lua 897 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. local M = {}
  2. local localstorage = require("localstorage")
  3. local fw = require("fastweb")
  4. local cjson = require("cjson")
  5. M.start = function(dirpath)
  6. local storage = localstorage.new()
  7. fw.set_ptr("localstorage_cache",storage:self())
  8. if storage:open(dirpath) == false then
  9. return false,storage:last_error()
  10. end
  11. return true
  12. end
  13. M.close = function()
  14. localstorage.new(localstorage_cache):close()
  15. end
  16. M.get = function(key)
  17. return localstorage.new(localstorage_cache):read(key)
  18. end
  19. M.get_json = function(key)
  20. local value = M.get(key)
  21. if value then
  22. return cjson.decode(value)
  23. end
  24. return nil
  25. end
  26. M.set = function(key,value)
  27. localstorage.new(localstorage_cache):write(key,value)
  28. end
  29. M.set_json = function(key,value)
  30. M.set(key,cjson.encode(value))
  31. end
  32. M.del = function(key)
  33. localstorage.new(localstorage_cache):del(key)
  34. end
  35. return M