Refactor pkgmgr-info
[platform/core/appfw/pkgmgr-info.git] / src / server / database / query_handler.hh
index 7b39a3a..c58fbd1 100644 (file)
@@ -35,6 +35,13 @@ namespace database {
 #define EXPORT_API __attribute__((visibility("default")))
 #endif
 
+enum class CacheChangeFlag {
+  NONE,
+  PKG,
+  APP,
+  APPBYPKG
+};
+
 class EXPORT_API QueryHandler : public AbstractDBHandler {
  public:
   QueryHandler(uid_t uid, int pid);
@@ -49,6 +56,12 @@ class EXPORT_API QueryHandler : public AbstractDBHandler {
   std::vector<pkgmgr_common::parcel::StrArgs> GetResult();
 
  private:
+  int ExecuteReadQuery(const std::vector<std::string>& queries,
+      const std::vector<std::vector<std::optional<std::string>>>& args_list);
+  int ExecuteWriteQuery(const std::vector<std::string>& queries,
+      const std::vector<std::vector<std::optional<std::string>>>& args_list,
+      const std::vector<std::pair<CacheChangeFlag, std::string>>& changes);
+
   uid_t uid_;
   std::vector<std::string> query_;
   std::vector<pkgmgr_common::parcel::QueryArgs> query_args_;