Chromium Code Reviews| Index: device/hid/hid_connection_linux.h |
| diff --git a/device/hid/hid_connection_linux.h b/device/hid/hid_connection_linux.h |
| index bcdb99c1cc7d231b07e2346ce983b1aa4a27dc67..db1322382bc9314ff9a2f691d30a7ac311ca7449 100644 |
| --- a/device/hid/hid_connection_linux.h |
| +++ b/device/hid/hid_connection_linux.h |
| @@ -10,12 +10,13 @@ |
| #include <queue> |
| -#include "base/files/file.h" |
| +#include "base/files/scoped_file.h" |
| #include "base/macros.h" |
| #include "base/memory/weak_ptr.h" |
| #include "device/hid/hid_connection.h" |
| namespace base { |
| +class SequencedTaskRunner; |
| class SingleThreadTaskRunner; |
| } |
| @@ -25,16 +26,13 @@ class HidConnectionLinux : public HidConnection { |
| public: |
| HidConnectionLinux( |
| scoped_refptr<HidDeviceInfo> device_info, |
| - base::File device_file, |
| - scoped_refptr<base::SingleThreadTaskRunner> file_thread_runner); |
| + base::ScopedFD fd, |
| + scoped_refptr<base::SequencedTaskRunner> blocking_task_runner); |
| private: |
| friend class base::RefCountedThreadSafe<HidConnectionLinux>; |
| class FileThreadHelper; |
| - typedef base::Callback<void(ssize_t)> InternalWriteCallback; |
| - typedef base::Callback<void(int)> IoctlCallback; |
| - |
| ~HidConnectionLinux() override; |
| // HidConnection implementation. |
| @@ -49,46 +47,20 @@ class HidConnectionLinux : public HidConnection { |
| size_t size, |
| const WriteCallback& callback) override; |
| - // Callbacks for blocking operations run on the FILE thread. |
| - void FinishWrite(size_t expected_size, |
| - const WriteCallback& callback, |
| - ssize_t result); |
| - void FinishGetFeatureReport(uint8_t report_id, |
| - scoped_refptr<net::IOBuffer> buffer, |
| - const ReadCallback& callback, |
| - int result); |
| - void FinishSendFeatureReport(const WriteCallback& callback, int result); |
| - |
| - // Writes to the device. This operation may block. |
| - static void BlockingWrite( |
| - base::PlatformFile platform_file, |
| - scoped_refptr<net::IOBuffer> buffer, |
| - size_t size, |
| - const InternalWriteCallback& callback, |
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner); |
| - // Performs an ioctl on the device. This operation may block. |
| - static void BlockingIoctl( |
| - base::PlatformFile platform_file, |
| - int request, |
| - scoped_refptr<net::IOBuffer> buffer, |
| - const IoctlCallback& callback, |
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner); |
| - |
| - // Closes the device file descriptor. Must be called on the FILE thread. |
| - static void CloseDevice(base::File device_file); |
| - |
| void ProcessInputReport(scoped_refptr<net::IOBuffer> buffer, size_t size); |
| void ProcessReadQueue(); |
| - base::File device_file_; |
| - FileThreadHelper* helper_; |
| + int fd_; // Copy of the file descriptor owned by |helper_|. |
|
fdoray
2017/04/07 20:26:23
|fd_| isn't used.
Reilly Grant (use Gerrit)
2017/04/07 22:10:48
Done.
|
| + std::unique_ptr<FileThreadHelper> helper_; |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
|
fdoray
2017/04/07 20:26:23
const scoped_refptr
Reilly Grant (use Gerrit)
2017/04/07 22:10:48
Done.
|
| - scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_; |
| + scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; |
|
fdoray
2017/04/07 20:26:23
const scoped_refptr
Reilly Grant (use Gerrit)
2017/04/07 22:10:49
Done.
|
| std::queue<PendingHidReport> pending_reports_; |
| std::queue<PendingHidRead> pending_reads_; |
| + base::ThreadChecker thread_checker_; |
|
fdoray
2017/04/07 20:26:23
missing include
Reilly Grant (use Gerrit)
2017/04/07 22:10:48
Done.
|
| + |
| base::WeakPtrFactory<HidConnectionLinux> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(HidConnectionLinux); |