Index: chromeos/dbus/shill_client_helper.h |
diff --git a/chromeos/dbus/shill_client_helper.h b/chromeos/dbus/shill_client_helper.h |
index 84534e090c8acafb4e3babdb4ef4e882cf0818e2..106afad1796b5996029ae6025ce7dc8ee014af7b 100644 |
--- a/chromeos/dbus/shill_client_helper.h |
+++ b/chromeos/dbus/shill_client_helper.h |
@@ -10,6 +10,7 @@ |
#include "base/basictypes.h" |
#include "base/callback.h" |
#include "base/memory/weak_ptr.h" |
+#include "base/observer_list.h" |
#include "chromeos/dbus/blocking_method_caller.h" |
#include "chromeos/dbus/dbus_method_call_status.h" |
@@ -47,24 +48,27 @@ class ShillClientHelper { |
DBusMethodCallStatus call_status, |
const base::DictionaryValue& result)> DictionaryValueCallback; |
- // A callback to handle responses for methods with DictionaryValue reuslts. |
+ // A callback to handle responses for methods with DictionaryValue results. |
// This is used by CallDictionaryValueMethodWithErrorCallback. |
typedef base::Callback<void(const base::DictionaryValue& result |
)> DictionaryValueCallbackWithoutStatus; |
- // A callback to handle erros for method call. |
+ // A callback to handle errors for method call. |
typedef base::Callback<void(const std::string& error_name, |
const std::string& error_message)> ErrorCallback; |
+ class PropertyChangedObserver { |
hashimoto
2012/09/21 11:52:01
Please add class comment, especially about the eve
Greg Spencer (Chromium)
2012/09/21 22:03:47
Done.
|
+ public: |
+ virtual void OnPropertyChanged(const std::string& name, |
+ const base::Value& value) = 0; |
+ }; |
+ |
ShillClientHelper(dbus::Bus* bus, dbus::ObjectProxy* proxy); |
virtual ~ShillClientHelper(); |
- // Sets PropertyChanged signal handler. |
- void SetPropertyChangedHandler(const PropertyChangedHandler& handler); |
- |
- // Resets PropertyChanged signal handler. |
- void ResetPropertyChangedHandler(); |
+ void AddPropertyChangedObserver(PropertyChangedObserver* observer); |
hashimoto
2012/09/21 11:52:01
Please add method comments.
Greg Spencer (Chromium)
2012/09/21 22:03:47
Done.
|
+ void RemovePropertyChangedObserver(PropertyChangedObserver* observer); |
// Starts monitoring PropertyChanged signal. |
void MonitorPropertyChanged(const std::string& interface_name); |
@@ -77,6 +81,12 @@ class ShillClientHelper { |
void CallObjectPathMethod(dbus::MethodCall* method_call, |
const ObjectPathDBusMethodCallback& callback); |
+ // Calls a method with an object path result where there is an error callback. |
+ void CallObjectPathMethodWithErrorCallback( |
+ dbus::MethodCall* method_call, |
+ const ObjectPathDBusMethodCallback& callback, |
hashimoto
2012/09/21 11:52:01
Can we introduce something like DictionaryValueCal
Greg Spencer (Chromium)
2012/09/21 22:03:47
Done.
|
+ const ErrorCallback& error_callback); |
+ |
// Calls a method with a dictionary value result. |
void CallDictionaryValueMethod(dbus::MethodCall* method_call, |
const DictionaryValueCallback& callback); |
@@ -150,6 +160,7 @@ class ShillClientHelper { |
BlockingMethodCaller blocking_method_caller_; |
dbus::ObjectProxy* proxy_; |
PropertyChangedHandler property_changed_handler_; |
+ ObserverList<PropertyChangedObserver> observer_list_; |
// Note: This should remain the last member so it'll be destroyed and |
// invalidate its weak pointers before any other members are destroyed. |