| Index: device/u2f/u2f_enumerate.h
|
| diff --git a/device/u2f/u2f_enumerate.h b/device/u2f/u2f_enumerate.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5f7fe683894f31b2b44ecdd90e9a1dc52b84ebb2
|
| --- /dev/null
|
| +++ b/device/u2f/u2f_enumerate.h
|
| @@ -0,0 +1,54 @@
|
| +// Copyright 2017 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 DEVICE_U2F_U2F_ENUMERATE_H_
|
| +#define DEVICE_U2F_U2F_ENUMERATE_H_
|
| +
|
| +#include <list>
|
| +
|
| +#include "base/scoped_observer.h"
|
| +#include "device/hid/hid_device_filter.h"
|
| +#include "device/hid/hid_service.h"
|
| +
|
| +namespace device {
|
| +class U2fDevice;
|
| +
|
| +class U2fEnumerate : HidService::Observer {
|
| + public:
|
| + using U2fEnumerateCallback =
|
| + base::OnceCallback<void(std::list<std::unique_ptr<U2fDevice>>)>;
|
| + using U2fDeviceAddedCallback =
|
| + base::RepeatingCallback<void(std::unique_ptr<U2fDevice>)>;
|
| + using U2fDeviceRemovedCallback =
|
| + base::RepeatingCallback<void(std::unique_ptr<U2fDevice>)>;
|
| +
|
| + U2fEnumerate();
|
| + ~U2fEnumerate();
|
| +
|
| + void EnumerateU2fDevices(U2fEnumerateCallback enumerate_cb);
|
| + void set_device_added_callback(
|
| + const U2fDeviceAddedCallback& device_added_cb) {
|
| + device_added_cb_ = device_added_cb;
|
| + }
|
| + void set_device_removed_callback(
|
| + const U2fDeviceRemovedCallback& device_removed_cb) {
|
| + device_removed_cb_ = device_removed_cb;
|
| + }
|
| +
|
| + private:
|
| + void OnHidEnumerationComplete(
|
| + U2fEnumerate::U2fEnumerateCallback callback,
|
| + const std::vector<scoped_refptr<HidDeviceInfo>>& devices);
|
| + void OnDeviceAdded(scoped_refptr<HidDeviceInfo> device_info) override;
|
| + void OnDeviceRemoved(scoped_refptr<HidDeviceInfo> device_info) override;
|
| +
|
| + HidDeviceFilter filter_;
|
| + U2fDeviceAddedCallback device_added_cb_;
|
| + U2fDeviceRemovedCallback device_removed_cb_;
|
| + ScopedObserver<HidService, HidService::Observer> hid_service_observer_;
|
| + base::WeakPtrFactory<U2fEnumerate> weak_factory_;
|
| +};
|
| +
|
| +} // namespace device
|
| +#endif // DEVICE_U2F_U2F_ENUMERATE_H_
|
|
|