| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROMEOS_DBUS_FLIMFLAM_CLIENT_HELPER_H_ | 5 #ifndef CHROMEOS_DBUS_FLIMFLAM_CLIENT_HELPER_H_ |
| 6 #define CHROMEOS_DBUS_FLIMFLAM_CLIENT_HELPER_H_ | 6 #define CHROMEOS_DBUS_FLIMFLAM_CLIENT_HELPER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/callback.h" | 11 #include "base/callback.h" |
| 12 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
| 13 #include "chromeos/dbus/blocking_method_caller.h" | 13 #include "chromeos/dbus/blocking_method_caller.h" |
| 14 #include "chromeos/dbus/dbus_method_call_status.h" | 14 #include "chromeos/dbus/dbus_method_call_status.h" |
| 15 | 15 |
| 16 namespace base { | 16 namespace base { |
| 17 | 17 |
| 18 class Value; | 18 class Value; |
| 19 class DictionaryValue; | 19 class DictionaryValue; |
| 20 | 20 |
| 21 } // namespace base | 21 } // namespace base |
| 22 | 22 |
| 23 namespace dbus { | 23 namespace dbus { |
| 24 | 24 |
| 25 class Bus; | 25 class Bus; |
| 26 class ErrorResponse; |
| 26 class MessageWriter; | 27 class MessageWriter; |
| 27 class MethodCall; | 28 class MethodCall; |
| 28 class ObjectPath; | 29 class ObjectPath; |
| 29 class ObjectProxy; | 30 class ObjectProxy; |
| 30 class Response; | 31 class Response; |
| 31 class Signal; | 32 class Signal; |
| 32 | 33 |
| 33 } // namespace dbus | 34 } // namespace dbus |
| 34 | 35 |
| 35 namespace chromeos { | 36 namespace chromeos { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 47 // A callback to handle responses for methods with ObjectPath results. | 48 // A callback to handle responses for methods with ObjectPath results. |
| 48 typedef base::Callback<void( | 49 typedef base::Callback<void( |
| 49 DBusMethodCallStatus call_status, | 50 DBusMethodCallStatus call_status, |
| 50 const dbus::ObjectPath& result)> ObjectPathCallback; | 51 const dbus::ObjectPath& result)> ObjectPathCallback; |
| 51 | 52 |
| 52 // A callback to handle responses for methods with DictionaryValue results. | 53 // A callback to handle responses for methods with DictionaryValue results. |
| 53 typedef base::Callback<void( | 54 typedef base::Callback<void( |
| 54 DBusMethodCallStatus call_status, | 55 DBusMethodCallStatus call_status, |
| 55 const base::DictionaryValue& result)> DictionaryValueCallback; | 56 const base::DictionaryValue& result)> DictionaryValueCallback; |
| 56 | 57 |
| 58 // A callback to handle erros for method call. |
| 59 typedef base::Callback<void(const std::string& error_name, |
| 60 const std::string& error_message)> ErrorCallback; |
| 61 |
| 57 FlimflamClientHelper(dbus::Bus* bus, dbus::ObjectProxy* proxy); | 62 FlimflamClientHelper(dbus::Bus* bus, dbus::ObjectProxy* proxy); |
| 58 | 63 |
| 59 virtual ~FlimflamClientHelper(); | 64 virtual ~FlimflamClientHelper(); |
| 60 | 65 |
| 61 // Sets PropertyChanged signal handler. | 66 // Sets PropertyChanged signal handler. |
| 62 void SetPropertyChangedHandler(const PropertyChangedHandler& handler); | 67 void SetPropertyChangedHandler(const PropertyChangedHandler& handler); |
| 63 | 68 |
| 64 // Resets PropertyChanged signal handler. | 69 // Resets PropertyChanged signal handler. |
| 65 void ResetPropertyChangedHandler(); | 70 void ResetPropertyChangedHandler(); |
| 66 | 71 |
| 67 // Starts monitoring PropertyChanged signal. | 72 // Starts monitoring PropertyChanged signal. |
| 68 void MonitorPropertyChanged(const std::string& interface_name); | 73 void MonitorPropertyChanged(const std::string& interface_name); |
| 69 | 74 |
| 70 // Calls a method without results. | 75 // Calls a method without results. |
| 71 void CallVoidMethod(dbus::MethodCall* method_call, | 76 void CallVoidMethod(dbus::MethodCall* method_call, |
| 72 const VoidCallback& callback); | 77 const VoidCallback& callback); |
| 73 | 78 |
| 74 // Calls a method with an object path result. | 79 // Calls a method with an object path result. |
| 75 void CallObjectPathMethod(dbus::MethodCall* method_call, | 80 void CallObjectPathMethod(dbus::MethodCall* method_call, |
| 76 const ObjectPathCallback& callback); | 81 const ObjectPathCallback& callback); |
| 77 | 82 |
| 78 // Calls a method with a dictionary value result. | 83 // Calls a method with a dictionary value result. |
| 79 void CallDictionaryValueMethod(dbus::MethodCall* method_call, | 84 void CallDictionaryValueMethod(dbus::MethodCall* method_call, |
| 80 const DictionaryValueCallback& callback); | 85 const DictionaryValueCallback& callback); |
| 81 | 86 |
| 87 // Calls a method without results with error callback. |
| 88 void CallVoidMethodWithErrorCallback(dbus::MethodCall* method_call, |
| 89 const base::Closure& callback, |
| 90 const ErrorCallback& error_callback); |
| 91 |
| 82 // DEPRECATED DO NOT USE: Calls a method without results. | 92 // DEPRECATED DO NOT USE: Calls a method without results. |
| 83 bool CallVoidMethodAndBlock(dbus::MethodCall* method_call); | 93 bool CallVoidMethodAndBlock(dbus::MethodCall* method_call); |
| 84 | 94 |
| 85 // DEPRECATED DO NOT USE: Calls a method with an object path result. | 95 // DEPRECATED DO NOT USE: Calls a method with an object path result. |
| 86 dbus::ObjectPath CallObjectPathMethodAndBlock(dbus::MethodCall* method_call); | 96 dbus::ObjectPath CallObjectPathMethodAndBlock(dbus::MethodCall* method_call); |
| 87 | 97 |
| 88 // DEPRECATED DO NOT USE: Calls a method with a dictionary value result. | 98 // DEPRECATED DO NOT USE: Calls a method with a dictionary value result. |
| 89 // The caller is responsible to delete the result. | 99 // The caller is responsible to delete the result. |
| 90 // This method returns NULL when method call fails. | 100 // This method returns NULL when method call fails. |
| 91 base::DictionaryValue* CallDictionaryValueMethodAndBlock( | 101 base::DictionaryValue* CallDictionaryValueMethodAndBlock( |
| (...skipping 17 matching lines...) Expand all Loading... |
| 109 void OnVoidMethod(const VoidCallback& callback, dbus::Response* response); | 119 void OnVoidMethod(const VoidCallback& callback, dbus::Response* response); |
| 110 | 120 |
| 111 // Handles responses for methods with ObjectPath results. | 121 // Handles responses for methods with ObjectPath results. |
| 112 void OnObjectPathMethod(const ObjectPathCallback& callback, | 122 void OnObjectPathMethod(const ObjectPathCallback& callback, |
| 113 dbus::Response* response); | 123 dbus::Response* response); |
| 114 | 124 |
| 115 // Handles responses for methods with DictionaryValue results. | 125 // Handles responses for methods with DictionaryValue results. |
| 116 void OnDictionaryValueMethod(const DictionaryValueCallback& callback, | 126 void OnDictionaryValueMethod(const DictionaryValueCallback& callback, |
| 117 dbus::Response* response); | 127 dbus::Response* response); |
| 118 | 128 |
| 129 // Handles responses for methods without results. |
| 130 // Used by CallVoidMethodWithErrorCallback(). |
| 131 void OnVoidMethodWithErrorCallback(const base::Closure& callback, |
| 132 dbus::Response* response); |
| 133 |
| 134 // Handles errors for method calls. |
| 135 void OnError(const ErrorCallback& error_callback, |
| 136 dbus::ErrorResponse* response); |
| 137 |
| 119 base::WeakPtrFactory<FlimflamClientHelper> weak_ptr_factory_; | 138 base::WeakPtrFactory<FlimflamClientHelper> weak_ptr_factory_; |
| 120 // TODO(hashimoto): Remove this when we no longer need to make blocking calls. | 139 // TODO(hashimoto): Remove this when we no longer need to make blocking calls. |
| 121 BlockingMethodCaller blocking_method_caller_; | 140 BlockingMethodCaller blocking_method_caller_; |
| 122 dbus::ObjectProxy* proxy_; | 141 dbus::ObjectProxy* proxy_; |
| 123 PropertyChangedHandler property_changed_handler_; | 142 PropertyChangedHandler property_changed_handler_; |
| 124 | 143 |
| 125 DISALLOW_COPY_AND_ASSIGN(FlimflamClientHelper); | 144 DISALLOW_COPY_AND_ASSIGN(FlimflamClientHelper); |
| 126 }; | 145 }; |
| 127 | 146 |
| 128 } // namespace chromeos | 147 } // namespace chromeos |
| 129 | 148 |
| 130 #endif // CHROMEOS_DBUS_FLIMFLAM_CLIENT_HELPER_H_ | 149 #endif // CHROMEOS_DBUS_FLIMFLAM_CLIENT_HELPER_H_ |
| OLD | NEW |