| 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 #include "chromeos/dbus/flimflam_ipconfig_client.h" | 5 #include "chromeos/dbus/flimflam_ipconfig_client.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 class FlimflamIPConfigClientImpl : public FlimflamIPConfigClient { | 23 class FlimflamIPConfigClientImpl : public FlimflamIPConfigClient { |
| 24 public: | 24 public: |
| 25 explicit FlimflamIPConfigClientImpl(dbus::Bus* bus); | 25 explicit FlimflamIPConfigClientImpl(dbus::Bus* bus); |
| 26 | 26 |
| 27 // FlimflamIPConfigClient overrides: | 27 // FlimflamIPConfigClient overrides: |
| 28 virtual void SetPropertyChangedHandler( | 28 virtual void SetPropertyChangedHandler( |
| 29 const dbus::ObjectPath& ipconfig_path, | 29 const dbus::ObjectPath& ipconfig_path, |
| 30 const PropertyChangedHandler& handler) OVERRIDE; | 30 const PropertyChangedHandler& handler) OVERRIDE; |
| 31 virtual void ResetPropertyChangedHandler( | 31 virtual void ResetPropertyChangedHandler( |
| 32 const dbus::ObjectPath& ipconfig_path) OVERRIDE; | 32 const dbus::ObjectPath& ipconfig_path) OVERRIDE; |
| 33 virtual void Refresh(const dbus::ObjectPath& ipconfig_path, |
| 34 const VoidDBusMethodCallback& callback) OVERRIDE; |
| 33 virtual void GetProperties(const dbus::ObjectPath& ipconfig_path, | 35 virtual void GetProperties(const dbus::ObjectPath& ipconfig_path, |
| 34 const DictionaryValueCallback& callback) OVERRIDE; | 36 const DictionaryValueCallback& callback) OVERRIDE; |
| 35 virtual base::DictionaryValue* CallGetPropertiesAndBlock( | 37 virtual base::DictionaryValue* CallGetPropertiesAndBlock( |
| 36 const dbus::ObjectPath& ipconfig_path) OVERRIDE; | 38 const dbus::ObjectPath& ipconfig_path) OVERRIDE; |
| 37 virtual void SetProperty(const dbus::ObjectPath& ipconfig_path, | 39 virtual void SetProperty(const dbus::ObjectPath& ipconfig_path, |
| 38 const std::string& name, | 40 const std::string& name, |
| 39 const base::Value& value, | 41 const base::Value& value, |
| 40 const VoidDBusMethodCallback& callback) OVERRIDE; | 42 const VoidDBusMethodCallback& callback) OVERRIDE; |
| 41 virtual void ClearProperty(const dbus::ObjectPath& ipconfig_path, | 43 virtual void ClearProperty(const dbus::ObjectPath& ipconfig_path, |
| 42 const std::string& name, | 44 const std::string& name, |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 } | 98 } |
| 97 | 99 |
| 98 base::DictionaryValue* FlimflamIPConfigClientImpl::CallGetPropertiesAndBlock( | 100 base::DictionaryValue* FlimflamIPConfigClientImpl::CallGetPropertiesAndBlock( |
| 99 const dbus::ObjectPath& ipconfig_path) { | 101 const dbus::ObjectPath& ipconfig_path) { |
| 100 dbus::MethodCall method_call(flimflam::kFlimflamIPConfigInterface, | 102 dbus::MethodCall method_call(flimflam::kFlimflamIPConfigInterface, |
| 101 flimflam::kGetPropertiesFunction); | 103 flimflam::kGetPropertiesFunction); |
| 102 return GetHelper(ipconfig_path)->CallDictionaryValueMethodAndBlock( | 104 return GetHelper(ipconfig_path)->CallDictionaryValueMethodAndBlock( |
| 103 &method_call); | 105 &method_call); |
| 104 } | 106 } |
| 105 | 107 |
| 108 void FlimflamIPConfigClientImpl::Refresh( |
| 109 const dbus::ObjectPath& ipconfig_path, |
| 110 const VoidDBusMethodCallback& callback) { |
| 111 dbus::MethodCall method_call(flimflam::kFlimflamIPConfigInterface, |
| 112 shill::kRefreshFunction); |
| 113 GetHelper(ipconfig_path)->CallVoidMethod(&method_call, callback); |
| 114 } |
| 115 |
| 106 void FlimflamIPConfigClientImpl::SetProperty( | 116 void FlimflamIPConfigClientImpl::SetProperty( |
| 107 const dbus::ObjectPath& ipconfig_path, | 117 const dbus::ObjectPath& ipconfig_path, |
| 108 const std::string& name, | 118 const std::string& name, |
| 109 const base::Value& value, | 119 const base::Value& value, |
| 110 const VoidDBusMethodCallback& callback) { | 120 const VoidDBusMethodCallback& callback) { |
| 111 dbus::MethodCall method_call(flimflam::kFlimflamIPConfigInterface, | 121 dbus::MethodCall method_call(flimflam::kFlimflamIPConfigInterface, |
| 112 flimflam::kSetPropertyFunction); | 122 flimflam::kSetPropertyFunction); |
| 113 dbus::MessageWriter writer(&method_call); | 123 dbus::MessageWriter writer(&method_call); |
| 114 writer.AppendString(name); | 124 writer.AppendString(name); |
| 115 // IPConfig supports writing basic type and string array properties. | 125 // IPConfig supports writing basic type and string array properties. |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 return GetHelper(ipconfig_path)->CallVoidMethodAndBlock(&method_call); | 181 return GetHelper(ipconfig_path)->CallVoidMethodAndBlock(&method_call); |
| 172 } | 182 } |
| 173 | 183 |
| 174 // A stub implementation of FlimflamIPConfigClient. | 184 // A stub implementation of FlimflamIPConfigClient. |
| 175 class FlimflamIPConfigClientStubImpl : public FlimflamIPConfigClient { | 185 class FlimflamIPConfigClientStubImpl : public FlimflamIPConfigClient { |
| 176 public: | 186 public: |
| 177 FlimflamIPConfigClientStubImpl() : weak_ptr_factory_(this) {} | 187 FlimflamIPConfigClientStubImpl() : weak_ptr_factory_(this) {} |
| 178 | 188 |
| 179 virtual ~FlimflamIPConfigClientStubImpl() {} | 189 virtual ~FlimflamIPConfigClientStubImpl() {} |
| 180 | 190 |
| 181 // FlimflamIPConfigClient override. | 191 /////////////////////////////////////////////// |
| 192 // FlimflamIPConfigClient overrides: |
| 182 virtual void SetPropertyChangedHandler( | 193 virtual void SetPropertyChangedHandler( |
| 183 const dbus::ObjectPath& ipconfig_path, | 194 const dbus::ObjectPath& ipconfig_path, |
| 184 const PropertyChangedHandler& handler) OVERRIDE {} | 195 const PropertyChangedHandler& handler) OVERRIDE {} |
| 185 | 196 |
| 186 // FlimflamIPConfigClient override. | |
| 187 virtual void ResetPropertyChangedHandler( | 197 virtual void ResetPropertyChangedHandler( |
| 188 const dbus::ObjectPath& ipconfig_path) OVERRIDE {} | 198 const dbus::ObjectPath& ipconfig_path) OVERRIDE {} |
| 189 | 199 |
| 190 // FlimflamIPConfigClient override. | 200 virtual void Refresh(const dbus::ObjectPath& ipconfig_path, |
| 201 const VoidDBusMethodCallback& callback) OVERRIDE {} |
| 202 |
| 191 virtual void GetProperties(const dbus::ObjectPath& ipconfig_path, | 203 virtual void GetProperties(const dbus::ObjectPath& ipconfig_path, |
| 192 const DictionaryValueCallback& callback) OVERRIDE { | 204 const DictionaryValueCallback& callback) OVERRIDE { |
| 193 MessageLoop::current()->PostTask( | 205 MessageLoop::current()->PostTask( |
| 194 FROM_HERE, base::Bind(&FlimflamIPConfigClientStubImpl::PassProperties, | 206 FROM_HERE, base::Bind(&FlimflamIPConfigClientStubImpl::PassProperties, |
| 195 weak_ptr_factory_.GetWeakPtr(), | 207 weak_ptr_factory_.GetWeakPtr(), |
| 196 callback)); | 208 callback)); |
| 197 } | 209 } |
| 198 | 210 |
| 199 // FlimflamIPConfigClient override. | |
| 200 virtual base::DictionaryValue* CallGetPropertiesAndBlock( | 211 virtual base::DictionaryValue* CallGetPropertiesAndBlock( |
| 201 const dbus::ObjectPath& ipconfig_path) OVERRIDE { | 212 const dbus::ObjectPath& ipconfig_path) OVERRIDE { |
| 202 return new base::DictionaryValue; | 213 return new base::DictionaryValue; |
| 203 } | 214 } |
| 204 | 215 |
| 205 // FlimflamIPConfigClient override. | |
| 206 virtual void SetProperty(const dbus::ObjectPath& ipconfig_path, | 216 virtual void SetProperty(const dbus::ObjectPath& ipconfig_path, |
| 207 const std::string& name, | 217 const std::string& name, |
| 208 const base::Value& value, | 218 const base::Value& value, |
| 209 const VoidDBusMethodCallback& callback) OVERRIDE { | 219 const VoidDBusMethodCallback& callback) OVERRIDE { |
| 210 MessageLoop::current()->PostTask( | 220 MessageLoop::current()->PostTask( |
| 211 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS)); | 221 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS)); |
| 212 } | 222 } |
| 213 | 223 |
| 214 // FlimflamIPConfigClient override. | |
| 215 virtual void ClearProperty(const dbus::ObjectPath& ipconfig_path, | 224 virtual void ClearProperty(const dbus::ObjectPath& ipconfig_path, |
| 216 const std::string& name, | 225 const std::string& name, |
| 217 const VoidDBusMethodCallback& callback) OVERRIDE { | 226 const VoidDBusMethodCallback& callback) OVERRIDE { |
| 218 MessageLoop::current()->PostTask( | 227 MessageLoop::current()->PostTask( |
| 219 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS)); | 228 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS)); |
| 220 } | 229 } |
| 221 | 230 |
| 222 // FlimflamIPConfigClient override. | |
| 223 virtual void Remove(const dbus::ObjectPath& ipconfig_path, | 231 virtual void Remove(const dbus::ObjectPath& ipconfig_path, |
| 224 const VoidDBusMethodCallback& callback) OVERRIDE { | 232 const VoidDBusMethodCallback& callback) OVERRIDE { |
| 225 MessageLoop::current()->PostTask( | 233 MessageLoop::current()->PostTask( |
| 226 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS)); | 234 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS)); |
| 227 } | 235 } |
| 228 | 236 |
| 229 // FlimflamIPConfigClient override. | |
| 230 virtual bool CallRemoveAndBlock( | 237 virtual bool CallRemoveAndBlock( |
| 231 const dbus::ObjectPath& ipconfig_path) OVERRIDE { | 238 const dbus::ObjectPath& ipconfig_path) OVERRIDE { |
| 232 return true; | 239 return true; |
| 233 } | 240 } |
| 234 | 241 |
| 235 private: | 242 private: |
| 236 // Runs callback with |properties_|. | 243 // Runs callback with |properties_|. |
| 237 void PassProperties(const DictionaryValueCallback& callback) const { | 244 void PassProperties(const DictionaryValueCallback& callback) const { |
| 238 callback.Run(DBUS_METHOD_CALL_SUCCESS, properties_); | 245 callback.Run(DBUS_METHOD_CALL_SUCCESS, properties_); |
| 239 } | 246 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 254 FlimflamIPConfigClient* FlimflamIPConfigClient::Create( | 261 FlimflamIPConfigClient* FlimflamIPConfigClient::Create( |
| 255 DBusClientImplementationType type, | 262 DBusClientImplementationType type, |
| 256 dbus::Bus* bus) { | 263 dbus::Bus* bus) { |
| 257 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) | 264 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) |
| 258 return new FlimflamIPConfigClientImpl(bus); | 265 return new FlimflamIPConfigClientImpl(bus); |
| 259 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); | 266 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); |
| 260 return new FlimflamIPConfigClientStubImpl(); | 267 return new FlimflamIPConfigClientStubImpl(); |
| 261 } | 268 } |
| 262 | 269 |
| 263 } // namespace chromeos | 270 } // namespace chromeos |
| OLD | NEW |