123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // Copyright (c) 2014 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
- #define SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
- #include <stddef.h>
- #include <stdint.h>
- #include "base/files/scoped_file.h"
- #include "base/memory/weak_ptr.h"
- #include "base/task/sequenced_task_runner.h"
- #include "services/device/hid/hid_connection.h"
- namespace base {
- class SequencedTaskRunner;
- }
- namespace device {
- class HidConnectionLinux : public HidConnection {
- public:
- HidConnectionLinux(
- scoped_refptr<HidDeviceInfo> device_info,
- base::ScopedFD fd,
- scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
- bool allow_protected_reports,
- bool allow_fido_reports);
- HidConnectionLinux(HidConnectionLinux&) = delete;
- HidConnectionLinux& operator=(HidConnectionLinux&) = delete;
- private:
- friend class base::RefCountedThreadSafe<HidConnectionLinux>;
- class BlockingTaskRunnerHelper;
- ~HidConnectionLinux() override;
- // HidConnection implementation.
- void PlatformClose() override;
- void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
- WriteCallback callback) override;
- void PlatformGetFeatureReport(uint8_t report_id,
- ReadCallback callback) override;
- void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
- WriteCallback callback) override;
- // |helper_| lives on the sequence to which |blocking_task_runner_| posts
- // tasks so all calls must be posted there including this object's
- // destruction.
- std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
- const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
- base::WeakPtrFactory<HidConnectionLinux> weak_factory_{this};
- };
- } // namespace device
- #endif // SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
|