From: Daehyeon Jung Date: Thu, 10 Jan 2019 04:31:47 +0000 (+0900) Subject: Change capabilities export/import in JSON X-Git-Tag: submit/tizen/20190208.015210~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=938b7d4ad53e445170db3fd9ed5df0b07234cfaa;p=platform%2Fcore%2Fappfw%2Fcapmgr.git Change capabilities export/import in JSON Change-Id: I89de9540ae5e82f0b919046c4829d67e09396662 --- diff --git a/src/common/capability.h b/src/common/capability.h index 79222c9..01c0fa2 100644 --- a/src/common/capability.h +++ b/src/common/capability.h @@ -49,14 +49,18 @@ class Capability { } std::string Serialize() const { + Json::StreamWriterBuilder builder; + return Json::writeString(builder, this->ToJson()); + } + + Json::Value ToJson() const { Json::Value root; root["operation"] = this->operation(); root["uri"] = this->uri(); root["mime"] = this->mime(); root["appid"] = this->appid(); root["pkgid"] = this->pkgid(); - Json::StreamWriterBuilder builder; - return Json::writeString(builder, root); + return std::move(root); } bool IsValid() const { return valid_; } diff --git a/src/common/capability_manager.cc b/src/common/capability_manager.cc index 3077db3..7083702 100644 --- a/src/common/capability_manager.cc +++ b/src/common/capability_manager.cc @@ -93,7 +93,7 @@ void CapabilityManager::GetList(GVariant **params) { cap.pkgid().c_str(), cap.appid().c_str()); } - *params = g_variant_new("a(sss)", builder); + *params = g_variant_new("a(sssss)", builder); g_variant_builder_unref(builder); } @@ -121,7 +121,7 @@ std::string CapabilityManager::PackCapabilities() { Json::Value caps; LOG(INFO) << "Pack " << list_.size() << " capabilities"; for (const auto& cap : list_) - caps.append(cap.Serialize()); + caps.append(cap.ToJson()); root["capabilities"] = caps; Json::StreamWriterBuilder builder; return Json::writeString(builder, root); @@ -133,7 +133,6 @@ std::vector CapabilityManager::UnpackCapabilities( std::unique_ptr reader(builder.newCharReader()); Json::Value root; std::string err; - if (!reader->parse(caps_str.c_str(), caps_str.c_str() + caps_str.size(), &root, &err)) { LOG(ERROR) << "Failed to parse JSON string of capabilities: " << err; @@ -143,12 +142,9 @@ std::vector CapabilityManager::UnpackCapabilities( std::vector list; const Json::Value caps = root["capabilities"]; for (unsigned int i = 0; i < caps.size(); ++i) { - Capability cap(caps[i].asString()); - if (!cap.IsValid()) { - LOG(ERROR) << "Invalid capability! Ignore it"; - continue; - } - list.emplace_back(caps[i].asString()); + list.emplace_back(caps[i]["operation"].asString(), caps[i]["uri"].asString(), + caps[i]["mime"].asString(), caps[i]["appid"].asString(), + caps[i]["pkgid"].asString()); } LOG(INFO) << "Unpacked " << list.size() << " capabilities";