Fix coding rule of request handlers
[platform/core/appfw/pkgmgr-info.git] / src / common / request_handler / command_request_handler.cc
index 45d428b..1817cc5 100644 (file)
@@ -3,48 +3,61 @@
 // found in the LICENSE file.
 
 #include "command_request_handler.hh"
+
+#include <string>
+
+#include "db_handle_provider.hh"
 #include "parcelable_factory.hh"
 #include "pkginfo_parcelable.hh"
-#include "db_handle_provider.hh"
 
 #include "pkgmgrinfo_debug.h"
 
-#include <string>
-
-using namespace pkgmgr_common::parcel;
-using namespace pkgmgr_common::database;
+namespace pcp = pkgmgr_common::parcel;
+namespace pcd = pkgmgr_common::database;
 
 namespace pkgmgr_server {
 namespace request_handler {
 
 bool CommandRequestHandler::HandleRequest(unsigned char* data, int size,
                                              std::string locale) {
-  auto abstract_parcel = ParcelableFactory::GetInst().CreateParcel(data, size);
+  auto abstract_parcel =
+      pcp::ParcelableFactory::GetInst().CreateParcel(data, size);
 
   if (abstract_parcel == nullptr ||
-      abstract_parcel->GetType() != ParcelableType::Command) {
+      abstract_parcel->GetType() != pcp::ParcelableType::Command) {
     _LOGE("Invalid parcel or type");
-    // TODO: return something
+    result_ = std::make_shared<pcp::ResultParcelable>(
+        PMINFO_R_ERROR, std::vector<std::vector<std::string>>{});
     return false;
   }
 
-  auto* parcel = dynamic_cast<CommandParcelable*>(abstract_parcel.get());
+  auto* parcel = dynamic_cast<pcp::CommandParcelable*>(abstract_parcel.get());
   if (parcel == nullptr) {
     _LOGE("Parcel is empty");
-    // TODO: return something
+    result_ = std::make_shared<pcp::ResultParcelable>(
+        PMINFO_R_ERROR, std::vector<std::vector<std::string>>{});
     return false;
   }
 
   if (parcel->GetCmd() == CommandType::RemoveCache) {
-    pkgmgr_common::DBHandleProvider::GetInst(parcel->GetUid()).SetMemoryMode(false);
-    result_.WriteInt32(0);
+    pkgmgr_common::DBHandleProvider::GetInst(
+        parcel->GetUid()).SetMemoryMode(GetPID(), false);
+    result_ = std::make_shared<pcp::ResultParcelable>(
+        PMINFO_R_OK, std::vector<std::vector<std::string>>{});
+    return true;
   }
 
   return true;
 }
 
-std::vector<uint8_t> CommandRequestHandler::GetResult() {
-  return result_.GetRaw();
+std::vector<uint8_t> CommandRequestHandler::ExtractResult() {
+  tizen_base::Parcel parcel;
+
+  parcel.WriteParcelable(*result_.get());
+  std::vector<uint8_t> raw = parcel.GetRaw();
+  result_.reset();
+
+  return raw;
 }
 
 }  // namespace request_handler