blob: e4fbb81635aaf713545b16bc54de27e6c551a9c6 [file] [log] [blame]
Chris Masoned7732e42011-05-20 11:08:56 -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_SERVICE_DBUS_ADAPTOR_H_
6#define SHILL_SERVICE_DBUS_ADAPTOR_H_
7
8#include <map>
9#include <string>
10
11#include <base/basictypes.h>
12
13#include "shill/adaptor_interfaces.h"
14#include "shill/dbus_adaptor.h"
15#include "shill/flimflam-service.h"
16
17namespace shill {
18class Service;
19
20// Subclass of DBusAdaptor for Service objects
21class ServiceDBusAdaptor : public org::chromium::flimflam::Service_adaptor,
22 public DBusAdaptor,
23 public ServiceAdaptorInterface {
24 public:
25 static const char kInterfaceName[];
26 static const char kPath[];
27
Chris Masoned0ceb8c2011-06-02 10:05:39 -070028 ServiceDBusAdaptor(DBus::Connection* conn, Service *service);
Chris Masoned7732e42011-05-20 11:08:56 -070029 virtual ~ServiceDBusAdaptor();
Chris Masoned0ceb8c2011-06-02 10:05:39 -070030
31 // Implementation of ServiceAdaptorInterface.
Chris Masoned7732e42011-05-20 11:08:56 -070032 void UpdateConnected();
Chris Masoned0ceb8c2011-06-02 10:05:39 -070033 void EmitBoolChanged(const std::string& name, bool value);
34 void EmitUintChanged(const std::string& name, uint32 value);
35 void EmitIntChanged(const std::string& name, int value);
36 void EmitStringChanged(const std::string& name, const std::string& value);
Chris Masoned7732e42011-05-20 11:08:56 -070037
38 // Implementation of Service_adaptor
39 std::map<std::string, ::DBus::Variant> GetProperties(::DBus::Error &error);
40 void SetProperty(const std::string& ,
41 const ::DBus::Variant& ,
42 ::DBus::Error &error);
43 void ClearProperty(const std::string& , ::DBus::Error &error);
44 void Connect(::DBus::Error &error);
45 void Disconnect(::DBus::Error &error);
46 void Remove(::DBus::Error &error);
47 void MoveBefore(const ::DBus::Path& , ::DBus::Error &error);
48 void MoveAfter(const ::DBus::Path& , ::DBus::Error &error);
49 void ActivateCellularModem(const std::string& , ::DBus::Error &error);
50
51 private:
52 Service *service_;
53 DISALLOW_COPY_AND_ASSIGN(ServiceDBusAdaptor);
54};
55
56} // namespace shill
57#endif // SHILL_SERVICE_DBUS_ADAPTOR_H_