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#include "extensions/browser/api/hid/hid_connection_resource.h"
6
7#include <string>
8
9#include "base/bind.h"
10#include "base/bind_helpers.h"
11#include "base/lazy_instance.h"
12#include "base/memory/ref_counted.h"
13#include "device/hid/hid_connection.h"
14
15namespace extensions {
16
17static base::LazyInstance<
18    BrowserContextKeyedAPIFactory<ApiResourceManager<HidConnectionResource> > >
19    g_factory = LAZY_INSTANCE_INITIALIZER;
20
21// static
22template <>
23BrowserContextKeyedAPIFactory<ApiResourceManager<HidConnectionResource> >*
24ApiResourceManager<HidConnectionResource>::GetFactoryInstance() {
25  return &g_factory.Get();
26}
27
28HidConnectionResource::HidConnectionResource(
29    const std::string& owner_extension_id,
30    scoped_refptr<device::HidConnection> connection)
31    : ApiResource(owner_extension_id), connection_(connection) {}
32
33HidConnectionResource::~HidConnectionResource() {
34  connection_->Close();
35}
36
37bool HidConnectionResource::IsPersistent() const {
38  return false;
39}
40
41}  // namespace extensions
42