| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright (c) 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_HID_HID_SERVICE_H_ | 
|  | 6 #define DEVICE_HID_HID_SERVICE_H_ | 
|  | 7 | 
|  | 8 #include <map> | 
|  | 9 #include <string> | 
|  | 10 #include <vector> | 
|  | 11 | 
|  | 12 #include "base/basictypes.h" | 
|  | 13 #include "base/memory/ref_counted.h" | 
|  | 14 #include "base/memory/scoped_ptr.h" | 
|  | 15 #include "base/message_loop/message_loop.h" | 
|  | 16 #include "base/strings/string16.h" | 
|  | 17 #include "base/threading/thread_checker.h" | 
|  | 18 #include "build/build_config.h" | 
|  | 19 #include "device/hid/hid_device_info.h" | 
|  | 20 | 
|  | 21 namespace device { | 
|  | 22 | 
|  | 23 namespace { | 
|  | 24 | 
|  | 25 class HidServiceContainer; | 
|  | 26 | 
|  | 27 }  // namespace | 
|  | 28 | 
|  | 29 class HidConnection; | 
|  | 30 class HidService; | 
|  | 31 | 
|  | 32 class HidService : public base::MessageLoop::DestructionObserver { | 
|  | 33  public: | 
|  | 34   // Must be called on FILE thread. | 
|  | 35   static HidService* GetInstance(); | 
|  | 36 | 
|  | 37   // Enumerates and returns a list of device identifiers. | 
|  | 38   virtual void GetDevices(std::vector<HidDeviceInfo>* devices); | 
|  | 39 | 
|  | 40   // Fills in the device info struct of the given device_id. | 
|  | 41   // Returns true if succeed. | 
|  | 42   // Returns false if the device_id is invalid, with info untouched. | 
|  | 43   bool GetInfo(std::string device_id, HidDeviceInfo* info) const; | 
|  | 44 | 
|  | 45   virtual scoped_refptr<HidConnection> Connect( | 
|  | 46       std::string platform_device_id) = 0; | 
|  | 47 | 
|  | 48   // Implements base::MessageLoop::DestructionObserver | 
|  | 49   virtual void WillDestroyCurrentMessageLoop() OVERRIDE; | 
|  | 50 | 
|  | 51   // Gets whether the HidService have been successfully initialized. | 
|  | 52   bool initialized() const { return initialized_; } | 
|  | 53 | 
|  | 54  protected: | 
|  | 55   friend class HidServiceContainer; | 
|  | 56   friend struct base::DefaultDeleter<HidService>; | 
|  | 57   friend class HidConnectionTest; | 
|  | 58 | 
|  | 59   HidService(); | 
|  | 60   virtual ~HidService(); | 
|  | 61 | 
|  | 62   static HidService* CreateInstance(); | 
|  | 63 | 
|  | 64   virtual void AddDevice(HidDeviceInfo info); | 
|  | 65   virtual void RemoveDevice(std::string platform_device_id); | 
|  | 66 | 
|  | 67   typedef std::map<std::string, HidDeviceInfo> DeviceMap; | 
|  | 68   DeviceMap devices_; | 
|  | 69 | 
|  | 70   bool initialized_; | 
|  | 71 | 
|  | 72   base::ThreadChecker thread_checker_; | 
|  | 73 | 
|  | 74   DISALLOW_COPY_AND_ASSIGN(HidService); | 
|  | 75 }; | 
|  | 76 | 
|  | 77 }  // namespace device | 
|  | 78 | 
|  | 79 #endif  // DEVICE_HID_HID_SERVICE_H_ | 
| OLD | NEW | 
|---|