| OLD | NEW | 
|---|
|  | (Empty) | 
| 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_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 | 
|---|