Remove unused android_experimental.
[chromium-blink-merge.git] / chromeos / dbus / shill_ipconfig_client.h
blobef144b293ed290a19b67b3b802af2460ab6749e6
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.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 ObjectPath;
27 } // namespace dbus
29 namespace chromeos {
31 class ShillPropertyChangedObserver;
33 // ShillIPConfigClient is used to communicate with the Shill IPConfig
34 // service. All methods should be called from the origin thread which
35 // initializes the DBusThreadManager instance.
36 class CHROMEOS_EXPORT ShillIPConfigClient : public DBusClient {
37 public:
38 typedef ShillClientHelper::PropertyChangedHandler PropertyChangedHandler;
39 typedef ShillClientHelper::DictionaryValueCallback DictionaryValueCallback;
40 virtual ~ShillIPConfigClient();
42 // Factory function, creates a new instance which is owned by the caller.
43 // For normal usage, access the singleton via DBusThreadManager::Get().
44 static ShillIPConfigClient* Create();
46 // Adds a property changed |observer| for the ipconfig at |ipconfig_path|.
47 virtual void AddPropertyChangedObserver(
48 const dbus::ObjectPath& ipconfig_path,
49 ShillPropertyChangedObserver* observer) = 0;
51 // Removes a property changed |observer| for the ipconfig at |ipconfig_path|.
52 virtual void RemovePropertyChangedObserver(
53 const dbus::ObjectPath& ipconfig_path,
54 ShillPropertyChangedObserver* observer) = 0;
56 // Refreshes the active IP configuration after service property changes and
57 // renews the DHCP lease, if any.
58 virtual void Refresh(const dbus::ObjectPath& ipconfig_path,
59 const VoidDBusMethodCallback& callback) = 0;
61 // Calls GetProperties method.
62 // |callback| is called after the method call succeeds.
63 virtual void GetProperties(const dbus::ObjectPath& ipconfig_path,
64 const DictionaryValueCallback& callback) = 0;
66 // Calls SetProperty method.
67 // |callback| is called after the method call succeeds.
68 virtual void SetProperty(const dbus::ObjectPath& ipconfig_path,
69 const std::string& name,
70 const base::Value& value,
71 const VoidDBusMethodCallback& callback) = 0;
73 // Calls ClearProperty method.
74 // |callback| is called after the method call succeeds.
75 virtual void ClearProperty(const dbus::ObjectPath& ipconfig_path,
76 const std::string& name,
77 const VoidDBusMethodCallback& callback) = 0;
79 // Calls Remove method.
80 // |callback| is called after the method call succeeds.
81 virtual void Remove(const dbus::ObjectPath& ipconfig_path,
82 const VoidDBusMethodCallback& callback) = 0;
84 protected:
85 friend class ShillIPConfigClientTest;
87 // Create() should be used instead.
88 ShillIPConfigClient();
90 private:
91 DISALLOW_COPY_AND_ASSIGN(ShillIPConfigClient);
94 } // namespace chromeos
96 #endif // CHROMEOS_DBUS_SHILL_IPCONFIG_CLIENT_H_