4th attempt to land change to remove NativeViewportService and
[chromium-blink-merge.git] / chromeos / dbus / dbus_client.h
blobe05c6678c3f2a46f154a2804200eb460e008cb5d
1 // Copyright 2013 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_DBUS_CLIENT_H_
6 #define CHROMEOS_DBUS_DBUS_CLIENT_H_
8 #include "base/basictypes.h"
10 namespace dbus {
11 class Bus;
12 } // namespace dbus
14 namespace chromeos {
16 // Interface for all DBus clients handled by DBusThreadManager. It restricts
17 // access to the Init function to DBusThreadManagerImpl only to prevent
18 // incorrect calls. Stub clients may lift that restriction however.
19 class DBusClient {
20 protected:
21 virtual ~DBusClient() {}
23 // This function is called by DBusThreadManager. Only in unit tests, which
24 // don't use DBusThreadManager, this function can be called through Stub
25 // implementations (they change Init's member visibility to public).
26 virtual void Init(dbus::Bus* bus) = 0;
28 private:
29 friend class DBusThreadManager;
31 DISALLOW_ASSIGN(DBusClient);
34 } // namespace chromeos
36 #endif // CHROMEOS_DBUS_DBUS_CLIENT_H_