Fix a type mismatch on Windows caused by r201738.
[chromium-blink-merge.git] / chromeos / dbus / shill_ipconfig_client.h
blobb311c5656864a1f3d15ff7e4484bb7014277a813
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
3 // found in the LICENSE file.
5 #ifndef CHROMEOS_DBUS_SHILL_IPCONFIG_CLIENT_H_
6 #define CHROMEOS_DBUS_SHILL_IPCONFIG_CLIENT_H_
8 #include <string>
10 #include "base/basictypes.h"
11 #include "base/callback.h"
12 #include "chromeos/chromeos_export.h"
13 #include "chromeos/dbus/dbus_client_implementation_type.h"
14 #include "chromeos/dbus/shill_client_helper.h"
16 namespace base {
18 class Value;
19 class DictionaryValue;
21 } // namespace base
23 namespace dbus {
25 class Bus;
26 class ObjectPath;
28 } // namespace dbus
30 namespace chromeos {
32 class ShillPropertyChangedObserver;
34 // ShillIPConfigClient is used to communicate with the Shill IPConfig
35 // service. All methods should be called from the origin thread which
36 // initializes the DBusThreadManager instance.
37 class CHROMEOS_EXPORT ShillIPConfigClient {
38 public:
39 typedef ShillClientHelper::PropertyChangedHandler PropertyChangedHandler;
40 typedef ShillClientHelper::DictionaryValueCallback DictionaryValueCallback;
41 virtual ~ShillIPConfigClient();
43 // Factory function, creates a new instance which is owned by the caller.
44 // For normal usage, access the singleton via DBusThreadManager::Get().
45 static ShillIPConfigClient* Create(DBusClientImplementationType type,
46 dbus::Bus* bus);
48 // Adds a property changed |observer| for the ipconfig at |ipconfig_path|.
49 virtual void AddPropertyChangedObserver(
50 const dbus::ObjectPath& ipconfig_path,
51 ShillPropertyChangedObserver* observer) = 0;
53 // Removes a property changed |observer| for the ipconfig at |ipconfig_path|.
54 virtual void RemovePropertyChangedObserver(
55 const dbus::ObjectPath& ipconfig_path,
56 ShillPropertyChangedObserver* observer) = 0;
58 // Refreshes the active IP configuration after service property changes and
59 // renews the DHCP lease, if any.
60 virtual void Refresh(const dbus::ObjectPath& ipconfig_path,
61 const VoidDBusMethodCallback& callback) = 0;
63 // Calls GetProperties method.
64 // |callback| is called after the method call succeeds.
65 virtual void GetProperties(const dbus::ObjectPath& ipconfig_path,
66 const DictionaryValueCallback& callback) = 0;
68 // DEPRECATED DO NOT USE: Calls GetProperties method and blocks until the
69 // method call finishes. The caller is responsible to delete the result.
70 // Thie method returns NULL when method call fails.
72 // TODO(hashimoto): Refactor CrosListIPConfigs to remove this method.
73 // crosbug.com/29902
74 virtual base::DictionaryValue* CallGetPropertiesAndBlock(
75 const dbus::ObjectPath& ipconfig_path) = 0;
77 // Calls SetProperty method.
78 // |callback| is called after the method call succeeds.
79 virtual void SetProperty(const dbus::ObjectPath& ipconfig_path,
80 const std::string& name,
81 const base::Value& value,
82 const VoidDBusMethodCallback& callback) = 0;
84 // Calls ClearProperty method.
85 // |callback| is called after the method call succeeds.
86 virtual void ClearProperty(const dbus::ObjectPath& ipconfig_path,
87 const std::string& name,
88 const VoidDBusMethodCallback& callback) = 0;
90 // Calls Remove method.
91 // |callback| is called after the method call succeeds.
92 virtual void Remove(const dbus::ObjectPath& ipconfig_path,
93 const VoidDBusMethodCallback& callback) = 0;
95 protected:
96 // Create() should be used instead.
97 ShillIPConfigClient();
99 private:
100 DISALLOW_COPY_AND_ASSIGN(ShillIPConfigClient);
103 } // namespace chromeos
105 #endif // CHROMEOS_DBUS_SHILL_IPCONFIG_CLIENT_H_