localstorage.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #pragma once
  2. #include <string>
  3. #include <vector>
  4. #include "util/json.h"
  5. #include "util/counter.hpp"
  6. #include "base/error.h"
  7. namespace leveldb
  8. {
  9. class DB;
  10. }
  11. namespace ylib
  12. {
  13. /// <summary>
  14. /// 本地存储(LevelDB)
  15. /// </summary>
  16. class local_storage:public ylib::error_base
  17. {
  18. public:
  19. local_storage();
  20. ~local_storage();
  21. /// <summary>
  22. /// 打开
  23. /// </summary>
  24. /// <param name="dirpath">目录</param>
  25. /// <returns></returns>
  26. bool open(const std::string& dirpath);
  27. /// <summary>
  28. /// 关闭
  29. /// </summary>
  30. void close();
  31. /// <summary>
  32. /// 清空数据库
  33. /// </summary>
  34. void clear();
  35. /// <summary>
  36. /// 写
  37. /// </summary>
  38. /// <param name="name"></param>
  39. /// <param name="value"></param>
  40. /// <returns></returns>
  41. bool write(const std::string& name,const std::string& value);
  42. /// <summary>
  43. /// 读
  44. /// </summary>
  45. /// <param name="name"></param>
  46. /// <param name="value"></param>
  47. /// <returns></returns>
  48. bool read(const std::string& name, std::string& value);
  49. /// <summary>
  50. /// 删除
  51. /// </summary>
  52. /// <param name="name"></param>
  53. /// <returns></returns>
  54. bool del(const std::string& name);
  55. /// <summary>
  56. /// 是否存在
  57. /// </summary>
  58. /// <param name="name"></param>
  59. /// <returns></returns>
  60. bool exist(const std::string& name);
  61. /// <summary>
  62. /// [测试] 生成GUID
  63. /// </summary>
  64. /// <returns></returns>
  65. //std::string test_make_guid();
  66. private:
  67. // 目录
  68. std::string m_dirpath;
  69. // DB指针
  70. leveldb::DB* m_db = nullptr;
  71. // GUID索引器
  72. ylib::counter<uint32> m_guid_counter;
  73. };
  74. }