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 CHROME_BROWSER_EXTENSIONS_API_HID_HID_CONNECTION_RESOURCE_H_ 6 #define CHROME_BROWSER_EXTENSIONS_API_HID_HID_CONNECTION_RESOURCE_H_ 7 8 #include <string> 9 10 #include "base/memory/ref_counted.h" 11 #include "content/public/browser/browser_thread.h" 12 #include "device/hid/hid_connection.h" 13 #include "extensions/browser/api/api_resource.h" 14 #include "extensions/browser/api/api_resource_manager.h" 15 16 namespace extensions { 17 18 class HidConnectionResource : public ApiResource { 19 public: 20 HidConnectionResource(const std::string& owner_extension_id, 21 scoped_refptr<device::HidConnection> connection); 22 virtual ~HidConnectionResource(); 23 connection()24 scoped_refptr<device::HidConnection> connection() const { 25 return connection_; 26 } 27 28 private: 29 friend class ApiResourceManager<HidConnectionResource>; 30 service_name()31 static const char* service_name() { return "HidConnectionResourceManager"; } 32 33 static const content::BrowserThread::ID kThreadId = 34 content::BrowserThread::FILE; 35 36 scoped_refptr<device::HidConnection> connection_; 37 38 DISALLOW_COPY_AND_ASSIGN(HidConnectionResource); 39 }; 40 41 } // namespace extensions 42 43 #endif // CHROME_BROWSER_EXTENSIONS_API_HID_HID_CONNECTION_RESOURCE_H_ 44