Remove the memory database for the cache
[platform/core/appfw/pkgmgr-info.git] / src / server / database / db_handle_provider.hh
index e165e05..6634917 100644 (file)
@@ -28,6 +28,7 @@
 #include <unordered_set>
 #include <vector>
 
+#include <database.hpp>
 #include "filter_checker_provider.hh"
 #include "pkgmgrinfo_basic.h"
 #include "pkgmgrinfo_private.h"
@@ -46,13 +47,10 @@ class EXPORT_API DBHandleProvider {
   static DBHandleProvider& GetInst(uid_t uid);
   static bool IsCrashedWriteRequest();
   static bool IsWriter(pid_t pid);
-  std::vector<std::pair<std::string, uid_t>> GetParserDBPath(int pid,
-                                                             bool write);
-  std::string GetCertDBPath(int pid, bool write);
-  void SetMemoryMode(pid_t pid);
-  void UnsetMemoryMode(pid_t pid);
-  int UpdateCache(sqlite3* db, pid_t pid, uid_t uid, bool write,
-                  const std::string& locale);
+  std::vector<std::pair<std::string, uid_t>> GetParserDBPath();
+  std::string GetCertDBPath();
+  int UpdateCache(const tizen_base::Database& db, pid_t pid, uid_t uid,
+      bool write, const std::string& locale);
   std::vector<std::shared_ptr<package_x>> GetPackages(
       pid_t pid, pkgmgrinfo_filter_x* filter,
       const std::string& package);
@@ -61,34 +59,27 @@ class EXPORT_API DBHandleProvider {
       const std::string& app);
   void TrimCache();
   void RegisterPendingPackageInfo(package_x* info);
-  bool UpdatePendingPackageInfo(sqlite3* db,
+  void UpdatePendingPackageInfo(const tizen_base::Database& db,
       pid_t pid, uid_t uid, const std::string& locale);
-  bool UpdateCachePkg(sqlite3* db, uid_t uid, const std::string& pkgid,
-      const std::string& locale);
-  bool UpdateCacheApp(sqlite3* db, uid_t uid, const std::string& appid,
-      const std::string& locale);
-  bool UpdateCacheAppByPkgid(sqlite3* db, uid_t uid, const std::string& pkgid,
-      const std::string& locale);
+  bool UpdateCachePkg(const tizen_base::Database& db, uid_t uid,
+      const std::string& pkgid, const std::string& locale);
+  bool UpdateCacheApp(const tizen_base::Database& db, uid_t uid,
+      const std::string& appid, const std::string& locale);
+  bool UpdateCacheAppByPkgid(const tizen_base::Database& db, uid_t uid,
+      const std::string& pkgid, const std::string& locale);
 
  private:
   explicit DBHandleProvider(uid_t uid);
-  sqlite3* CreateMemoryDBHandle(const std::string& filedb_path,
-                             const std::string& memorydb_path);
-  bool IsMemoryDBActive(pid_t pid, bool write);
   void ReleaseCache();
-  void AddPackage(std::string package, package_x* info);
+  void AddPackage(std::string package, std::shared_ptr<package_x> info);
   void AddApplication(std::string app, std::shared_ptr<application_x> info);
   void InsertPID(pid_t pid);
   bool ErasePID(pid_t pid);
+  std::shared_ptr<package_x> GetPackageByApp(const char* appid);
 
  private:
   static std::unordered_map<uid_t,
         std::unique_ptr<DBHandleProvider>> provider_map_;
-  static bool is_global_memdb_set_;
-  static std::unique_ptr<sqlite3, decltype(sqlite3_close_v2)*>
-      global_parser_memdb_handle_;
-  static std::unique_ptr<sqlite3, decltype(sqlite3_close_v2)*>
-      cert_memdb_handle_;
   static std::string global_parser_filedb_path_;
   static std::string cert_filedb_path_;
   static std::unordered_set<pid_t> writer_pid_list_;
@@ -96,9 +87,6 @@ class EXPORT_API DBHandleProvider {
   static std::shared_mutex pid_list_lock_;
 
   uid_t uid_;
-  bool is_user_memdb_set_;
-  std::unique_ptr<sqlite3, decltype(sqlite3_close_v2)*>
-      parser_memdb_handle_;
   std::string user_parser_memdb_path_;
   std::string user_parser_filedb_path_;
   bool released_ = true;