Introduce new SPDY Version UMA histogram.
[chromium-blink-merge.git] / device / hid / hid_connection_win.h
blob14548f03636002064c913400bed4ecf868328e53
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.
5 #ifndef DEVICE_HID_HID_CONNECTION_WIN_H_
6 #define DEVICE_HID_HID_CONNECTION_WIN_H_
8 #include <windows.h>
10 #include <set>
12 #include "base/win/scoped_handle.h"
13 #include "device/hid/hid_connection.h"
15 namespace device {
17 struct PendingHidTransfer;
19 class HidConnectionWin : public HidConnection {
20 public:
21 explicit HidConnectionWin(const HidDeviceInfo& device_info);
23 private:
24 friend class HidServiceWin;
25 friend struct PendingHidTransfer;
27 ~HidConnectionWin();
29 // HidConnection implementation.
30 virtual void PlatformRead(const ReadCallback& callback) OVERRIDE;
31 virtual void PlatformWrite(scoped_refptr<net::IOBuffer> buffer,
32 size_t size,
33 const WriteCallback& callback) OVERRIDE;
34 virtual void PlatformGetFeatureReport(uint8_t report_id,
35 const ReadCallback& callback) OVERRIDE;
36 virtual void PlatformSendFeatureReport(
37 scoped_refptr<net::IOBuffer> buffer,
38 size_t size,
39 const WriteCallback& callback) OVERRIDE;
41 bool available() const { return file_.IsValid(); }
43 void OnReadComplete(scoped_refptr<net::IOBuffer> buffer,
44 const ReadCallback& callback,
45 PendingHidTransfer* transfer,
46 bool signaled);
47 void OnReadFeatureComplete(scoped_refptr<net::IOBuffer> buffer,
48 const ReadCallback& callback,
49 PendingHidTransfer* transfer,
50 bool signaled);
51 void OnWriteComplete(const WriteCallback& callback,
52 PendingHidTransfer* transfer,
53 bool signaled);
55 base::win::ScopedHandle file_;
57 std::set<scoped_refptr<PendingHidTransfer> > transfers_;
59 DISALLOW_COPY_AND_ASSIGN(HidConnectionWin);
62 } // namespace device
64 #endif // DEVICE_HID_HID_CONNECTION_WIN_H_