Home | History | Annotate | Download | only in dbus
      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.
      4 
      5 #ifndef CHROMEOS_DBUS_DBUS_CLIENT_H_
      6 #define CHROMEOS_DBUS_DBUS_CLIENT_H_
      7 
      8 #include "base/basictypes.h"
      9 
     10 namespace dbus {
     11 class Bus;
     12 };
     13 
     14 namespace chromeos {
     15 
     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   friend class DBusThreadManager;
     22 
     23   virtual ~DBusClient() {}
     24 
     25   // This function is called by DBusThreadManager. Only in unit tests, which
     26   // don't use DBusThreadManager, this function can be called through Stub
     27   // implementations (they change Init's member visibility to public).
     28   virtual void Init(dbus::Bus* bus) = 0;
     29 
     30  private:
     31   DISALLOW_ASSIGN(DBusClient);
     32 };
     33 
     34 }  // namespace chromeos
     35 
     36 #endif  // CHROMEOS_DBUS_DBUS_CLIENT_H_
     37