multiple_virtual_fido_device_factory.cc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright 2020 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. #include "device/fido/multiple_virtual_fido_device_factory.h"
  5. #include "device/fido/virtual_fido_device_discovery.h"
  6. namespace device {
  7. namespace test {
  8. MultipleVirtualFidoDeviceFactory::DeviceDetails::DeviceDetails() = default;
  9. MultipleVirtualFidoDeviceFactory::DeviceDetails::~DeviceDetails() = default;
  10. MultipleVirtualFidoDeviceFactory::DeviceDetails::DeviceDetails(
  11. DeviceDetails&& other) = default;
  12. MultipleVirtualFidoDeviceFactory::DeviceDetails&
  13. MultipleVirtualFidoDeviceFactory::DeviceDetails::operator=(
  14. DeviceDetails&& other) = default;
  15. MultipleVirtualFidoDeviceFactory::MultipleVirtualFidoDeviceFactory() = default;
  16. MultipleVirtualFidoDeviceFactory::~MultipleVirtualFidoDeviceFactory() = default;
  17. void MultipleVirtualFidoDeviceFactory::AddDevice(DeviceDetails device_details) {
  18. devices_.push_back(std::move(device_details));
  19. }
  20. std::vector<std::unique_ptr<FidoDiscoveryBase>>
  21. MultipleVirtualFidoDeviceFactory::Create(FidoTransportProtocol transport) {
  22. std::vector<std::unique_ptr<FidoDiscoveryBase>> discoveries;
  23. for (auto& device : devices_) {
  24. if (device.transport != transport) {
  25. continue;
  26. }
  27. const size_t trace_index = trace_->discoveries.size();
  28. trace_->discoveries.emplace_back();
  29. discoveries.push_back(std::make_unique<VirtualFidoDeviceDiscovery>(
  30. trace_, trace_index, device.transport, device.state, device.protocol,
  31. device.config, std::move(device.disconnect_events)));
  32. }
  33. return discoveries;
  34. }
  35. bool MultipleVirtualFidoDeviceFactory::IsTestOverride() {
  36. return true;
  37. }
  38. } // namespace test
  39. } // namespace device