libchromeos: Add generic DBus data serialization/deserialization
Provide generic methods to write arbitrary C++ data to D-Bus
message buffers and read it back. Implement generic conatainer
support such as std::vector, std::map, std::pair to support
D-Bus ARRAY, DICT, STRUCT data types. Also using chromeos::Any
as a D-Bus VARIANT type.
Added a bunch of unit tests for dbus_utils.
BUG=None
TEST=FEATURES=test emerge-link libchromeos
FEATURES=test emerge-link buffet
Change-Id: Ic445e11fb2e65c8243df183c6e93c4b3cb881dc8
Reviewed-on: https://chromium-review.googlesource.com/213923
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc
index 3e09f30..a1cb374 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -53,14 +53,15 @@
FILE_PATH_LITERAL("/var/lib/buffet/device_reg_info");
bool GetParamValue(
- const std::map<std::string, std::unique_ptr<base::Value>>& params,
+ const std::map<std::string, std::string>& params,
const std::string& param_name,
std::string* param_value) {
auto p = params.find(param_name);
if (p == params.end())
return false;
- return p->second->GetAsString(param_value);
+ *param_value = p->second;
+ return true;
}
std::pair<std::string, std::string> BuildAuthHeader(
@@ -335,7 +336,7 @@
}
std::string DeviceRegistrationInfo::StartRegistration(
- const std::map<std::string, std::unique_ptr<base::Value>>& params,
+ const std::map<std::string, std::string>& params,
chromeos::ErrorPtr* error) {
GetParamValue(params, storage_keys::kClientId, &client_id_);
GetParamValue(params, storage_keys::kClientSecret, &client_secret_);