blob: 0d057554fec192b6227b204a8281715490b9a281 [file] [log] [blame]
// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SHILL_DBUS_CONTROL_INT_H_
#define SHILL_DBUS_CONTROL_INT_
#include <string>
namespace shill {
// Superclass for all DBus-backed Proxy objects
class DBusProxy : public ProxyInterface {
public:
void SetProperty(const string &key, const string &value);
const string *GetProperty(const string &key);
void ClearProperty(const string &key);
protected:
string interface_;
string path_;
};
class DBusControl;
// Subclass of DBusProxy for Manager objects
class ManagerDBusProxy : protected DBusProxy, public ManagerProxyInterface {
public:
explicit ManagerDBusProxy(Manager *manager);
void UpdateRunning();
private:
static const char kInterfaceName[];
static const char kPath[];
string interface_;
string path_;
Manager *manager_;
};
// Subclass of DBusProxy for Service objects
class ServiceDBusProxy : protected DBusProxy, public ServiceProxyInterface {
public:
explicit ServiceDBusProxy(Service *service);
void UpdateConnected();
private:
static const char kInterfaceName[];
static const char kPath[];
string interface_;
string path_;
Service *service_;
};
// Subclass of DBusProxy for Device objects
class DeviceDBusProxy : protected DBusProxy, public DeviceProxyInterface {
public:
explicit DeviceDBusProxy(Device *device);
void UpdateEnabled();
private:
static const char kInterfaceName[];
static const char kPath[];
string interface_;
string path_;
Device *device_;
};
} // namespace shill
#endif // SHILL_DBUS_CONTROL_INT_