1// Copyright 2014 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 DEVICE_CORE_DEVICE_CLIENT_H_ 6#define DEVICE_CORE_DEVICE_CLIENT_H_ 7 8#include "base/macros.h" 9 10namespace device { 11 12class HidService; 13class UsbService; 14 15// Interface used by consumers of //device APIs to get pointers to the service 16// singletons appropriate for a given embedding application. For an example see 17// //chrome/browser/chrome_device_client.h. 18class DeviceClient { 19 public: 20 // Construction sets the single instance. 21 DeviceClient(); 22 23 // Destruction clears the single instance. 24 ~DeviceClient(); 25 26 // Returns the single instance of |this|. 27 static DeviceClient* Get(); 28 29 // Returns the UsbService instance for this embedder. 30 virtual UsbService* GetUsbService(); 31 32 // Returns the HidService instance for this embedder. 33 virtual HidService* GetHidService(); 34 35 private: 36 DISALLOW_COPY_AND_ASSIGN(DeviceClient); 37}; 38 39} // namespace device 40 41#endif // DEVICE_CORE_DEVICE_CLIENT_H_ 42