Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(671)

Unified Diff: components/cloud_devices/cloud_device_description.cc

Issue 150993002: Reading, writing of CDD and CJT JSON formats. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/cloud_devices/cloud_device_description.cc
diff --git a/components/cloud_devices/cloud_device_description.cc b/components/cloud_devices/cloud_device_description.cc
new file mode 100644
index 0000000000000000000000000000000000000000..124bb49c1fd3a429aaeeaaf978f7e0745191650b
--- /dev/null
+++ b/components/cloud_devices/cloud_device_description.cc
@@ -0,0 +1,78 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/cloud_devices/cloud_device_description.h"
+
+#include "base/json/json_reader.h"
+#include "base/json/json_writer.h"
+#include "base/logging.h"
+#include "base/values.h"
+#include "components/cloud_devices/cloud_device_description_consts.h"
+
+namespace cloud_devices {
+
+CloudDeviceDescription::CloudDeviceDescription() {
+ Reset();
+}
+
+CloudDeviceDescription::~CloudDeviceDescription() {
+}
+
+void CloudDeviceDescription::Reset() {
+ root_.reset(new base::DictionaryValue);
+ root_->SetString(json::kVersion, json::kVersion10);
+}
+
+bool CloudDeviceDescription::InitFromString(const std::string& json) {
+ Reset();
+
+ scoped_ptr<base::Value> parsed(base::JSONReader::Read(json));
+ base::DictionaryValue* description = NULL;
+ if (!parsed || !parsed->GetAsDictionary(&description))
+ return false;
+ root_.reset(description);
+ ignore_result(parsed.release());
+
+ std::string version;
+ description->GetString(json::kVersion, &version);
+ return version == json::kVersion10;
+}
+
+std::string CloudDeviceDescription::ToString() const {
+ std::string json;
+ base::JSONWriter::WriteWithOptions(root_.get(),
+ base::JSONWriter::OPTIONS_PRETTY_PRINT,
+ &json);
+ return json;
+}
+
+const base::DictionaryValue* CloudDeviceDescription::GetItem(
+ const std::string& path) const {
+ const base::DictionaryValue* value = NULL;
+ root_->GetDictionary(path, &value);
+ return value;
+}
+
+base::DictionaryValue* CloudDeviceDescription::CreateItem(
+ const std::string& path) {
+ base::DictionaryValue* value = new base::DictionaryValue;
+ root_->Set(path, value);
+ return value;
+}
+
+const base::ListValue* CloudDeviceDescription::GetListItem(
+ const std::string& path) const {
+ const base::ListValue* value = NULL;
+ root_->GetList(path, &value);
+ return value;
+}
+
+base::ListValue* CloudDeviceDescription::CreateListItem(
+ const std::string& path) {
+ base::ListValue* value = new base::ListValue;
+ root_->Set(path, value);
+ return value;
+}
+
+} // namespace cloud_devices
« no previous file with comments | « components/cloud_devices/cloud_device_description.h ('k') | components/cloud_devices/cloud_device_description_consts.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698