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

Unified Diff: chromeos/dbus/leadership_daemon_manager_client.cc

Issue 972983003: ChromeOS DBus: leaderd API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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: chromeos/dbus/leadership_daemon_manager_client.cc
diff --git a/chromeos/dbus/leadership_daemon_manager_client.cc b/chromeos/dbus/leadership_daemon_manager_client.cc
index 51f7765a4a6689acc7d9eb2a1c16769eb4e05e78..9ad7f42ad890b8649e45f217c31da8ed08b9020c 100644
--- a/chromeos/dbus/leadership_daemon_manager_client.cc
+++ b/chromeos/dbus/leadership_daemon_manager_client.cc
@@ -53,7 +53,7 @@ class LeadershipDaemonManagerClientImpl
void RemoveObserver(Observer* observer) override;
void JoinGroup(const std::string& group,
const base::DictionaryValue& options,
- const StringDBusMethodCallback& callback) override;
+ const ObjectPathDBusMethodCallback& callback) override;
void LeaveGroup(const std::string& object_path,
const VoidDBusMethodCallback& callback) override;
void SetScore(const std::string& object_path,
@@ -85,6 +85,8 @@ class LeadershipDaemonManagerClientImpl
void OnGroupPropertyChanged(const dbus::ObjectPath& object_path,
const std::string& property_name);
+ void OnObjectPathDBusMethod(const ObjectPathDBusMethodCallback& callback,
+ dbus::Response* response);
void OnStringDBusMethod(const StringDBusMethodCallback& callback,
dbus::Response* response);
void OnVoidDBusMethod(const VoidDBusMethodCallback& callback,
@@ -122,13 +124,13 @@ void LeadershipDaemonManagerClientImpl::RemoveObserver(Observer* observer) {
void LeadershipDaemonManagerClientImpl::JoinGroup(
const std::string& group,
const base::DictionaryValue& options,
- const StringDBusMethodCallback& callback) {
+ const ObjectPathDBusMethodCallback& callback) {
dbus::ObjectProxy* object_proxy = object_manager_->GetObjectProxy(
dbus::ObjectPath(leaderd::kLeaderdManagerPath));
if (!object_proxy) {
base::MessageLoop::current()->PostTask(
FROM_HERE,
- base::Bind(&LeadershipDaemonManagerClientImpl::OnStringDBusMethod,
+ base::Bind(&LeadershipDaemonManagerClientImpl::OnObjectPathDBusMethod,
weak_ptr_factory_.GetWeakPtr(), callback, nullptr));
return;
}
@@ -140,7 +142,7 @@ void LeadershipDaemonManagerClientImpl::JoinGroup(
dbus::AppendValueData(&writer, options);
object_proxy->CallMethod(
&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
- base::Bind(&LeadershipDaemonManagerClientImpl::OnStringDBusMethod,
+ base::Bind(&LeadershipDaemonManagerClientImpl::OnObjectPathDBusMethod,
weak_ptr_factory_.GetWeakPtr(), callback));
}
@@ -298,6 +300,24 @@ void LeadershipDaemonManagerClientImpl::OnGroupPropertyChanged(
GroupPropertyChanged(object_path, property_name));
}
+void LeadershipDaemonManagerClientImpl::OnObjectPathDBusMethod(
+ const ObjectPathDBusMethodCallback& callback,
+ dbus::Response* response) {
+ if (!response) {
+ callback.Run(DBUS_METHOD_CALL_FAILURE, dbus::ObjectPath());
+ return;
+ }
+
+ dbus::MessageReader reader(response);
+ dbus::ObjectPath result;
+ if (!reader.PopObjectPath(&result)) {
+ callback.Run(DBUS_METHOD_CALL_FAILURE, result);
+ return;
+ }
+
+ callback.Run(DBUS_METHOD_CALL_SUCCESS, result);
+}
+
void LeadershipDaemonManagerClientImpl::OnStringDBusMethod(
const StringDBusMethodCallback& callback,
dbus::Response* response) {

Powered by Google App Engine
This is Rietveld 408576698