blob: e49deaabd8ba7d8113d97ae929cf041a16bae428 [file] [log] [blame]
// Copyright 2019 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_PUBLIC_MOJOM_USB_MANAGER_MOJOM_TEST_UTILS_H_
#define SERVICES_DEVICE_PUBLIC_MOJOM_USB_MANAGER_MOJOM_TEST_UTILS_H_
#include "services/device/public/mojom/usb_manager.mojom.h"
namespace device {
namespace mojom {
class UsbDeviceManagerInterceptorForTesting : public UsbDeviceManager {
virtual UsbDeviceManager* GetForwardingInterface() = 0;
void EnumerateDevicesAndSetClient(::device::mojom::UsbDeviceManagerClientAssociatedPtrInfo client, EnumerateDevicesAndSetClientCallback callback) override;
void GetDevices(::device::mojom::UsbEnumerationOptionsPtr options, GetDevicesCallback callback) override;
void GetDevice(const std::string& guid, ::device::mojom::UsbDeviceRequest device_request, ::device::mojom::UsbDeviceClientPtr device_client) override;
void SetClient(::device::mojom::UsbDeviceManagerClientAssociatedPtrInfo client) override;
};
class UsbDeviceManagerAsyncWaiter {
public:
explicit UsbDeviceManagerAsyncWaiter(UsbDeviceManager* proxy);
~UsbDeviceManagerAsyncWaiter();
void EnumerateDevicesAndSetClient(
::device::mojom::UsbDeviceManagerClientAssociatedPtrInfo client, std::vector<::device::mojom::UsbDeviceInfoPtr>* out_results);
void GetDevices(
::device::mojom::UsbEnumerationOptionsPtr options, std::vector<::device::mojom::UsbDeviceInfoPtr>* out_results);
private:
UsbDeviceManager* const proxy_;
DISALLOW_COPY_AND_ASSIGN(UsbDeviceManagerAsyncWaiter);
};
} // namespace mojom
} // namespace device
#endif // SERVICES_DEVICE_PUBLIC_MOJOM_USB_MANAGER_MOJOM_TEST_UTILS_H_