blob: 93320dc828233855a1d816938d0ec62f86d012fa [file] [log] [blame]
Darin Petkov5c97ac52011-07-19 16:30:49 -07001// Copyright (c) 2011 The Chromium OS 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.
4
5#ifndef SHILL_DBUS_PROPERTIES_PROXY_INTERFACE_
6#define SHILL_DBUS_PROPERTIES_PROXY_INTERFACE_
7
Darin Petkovc5f56562011-08-06 16:40:05 -07008#include <vector>
9
Darin Petkove0a312e2011-07-20 13:45:28 -070010#include "shill/dbus_properties.h"
Darin Petkov5c97ac52011-07-19 16:30:49 -070011
12namespace shill {
13
14// These are the methods that a DBusProperties proxy must support. The interface
15// is provided so that it can be mocked in tests.
16class DBusPropertiesProxyInterface {
17 public:
18 virtual ~DBusPropertiesProxyInterface() {}
19
Darin Petkove0a312e2011-07-20 13:45:28 -070020 virtual DBusPropertiesMap GetAll(const std::string &interface_name) = 0;
Darin Petkov5c97ac52011-07-19 16:30:49 -070021};
22
Darin Petkovc5f56562011-08-06 16:40:05 -070023// DBus.Properties signal listener to be associated with the proxy.
24class DBusPropertiesProxyListener {
25 public:
26 virtual ~DBusPropertiesProxyListener() {}
27
28 virtual void OnDBusPropertiesChanged(
29 const std::string &interface,
30 const DBusPropertiesMap &changed_properties,
31 const std::vector<std::string> &invalidated_properties) = 0;
32
33 virtual void OnModemManagerPropertiesChanged(
34 const std::string &interface,
35 const DBusPropertiesMap &properties) = 0;
36};
37
Darin Petkov5c97ac52011-07-19 16:30:49 -070038} // namespace shill
39
40#endif // SHILL_DBUS_PROPERTIES_PROXY_INTERFACE_