chromium/extensions/browser/api/usb/usb_api.h

// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef EXTENSIONS_BROWSER_API_USB_USB_API_H_
#define EXTENSIONS_BROWSER_API_USB_USB_API_H_

#include <stddef.h>
#include <stdint.h>

#include <memory>
#include <string>
#include <vector>

#include "base/containers/span.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/values.h"
#include "extensions/browser/api/usb/usb_device_manager.h"
#include "extensions/browser/extension_function.h"
#include "extensions/common/api/usb.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/device/public/mojom/usb_device.mojom.h"

namespace extensions {

class DevicePermissionEntry;
class DevicePermissionsPrompt;
class DevicePermissionsManager;
class UsbDeviceResource;

class UsbExtensionFunction : public ExtensionFunction {};

class UsbPermissionCheckingFunction : public UsbExtensionFunction {};

class UsbConnectionFunction : public UsbExtensionFunction {};

class UsbTransferFunction : public UsbConnectionFunction {};

class UsbGenericTransferFunction : public UsbTransferFunction {};

class UsbFindDevicesFunction : public UsbExtensionFunction {};

class UsbGetDevicesFunction : public UsbPermissionCheckingFunction {};

class UsbGetUserSelectedDevicesFunction : public UsbExtensionFunction {};

class UsbGetConfigurationsFunction : public UsbPermissionCheckingFunction {};

class UsbRequestAccessFunction : public ExtensionFunction {};

class UsbOpenDeviceFunction : public UsbPermissionCheckingFunction {};

class UsbSetConfigurationFunction : public UsbConnectionFunction {};

class UsbGetConfigurationFunction : public UsbConnectionFunction {};

class UsbListInterfacesFunction : public UsbConnectionFunction {};

class UsbCloseDeviceFunction : public UsbConnectionFunction {};

class UsbClaimInterfaceFunction : public UsbConnectionFunction {};

class UsbReleaseInterfaceFunction : public UsbConnectionFunction {};

class UsbSetInterfaceAlternateSettingFunction : public UsbConnectionFunction {};

class UsbControlTransferFunction : public UsbTransferFunction {};

class UsbBulkTransferFunction : public UsbGenericTransferFunction {};

class UsbInterruptTransferFunction : public UsbGenericTransferFunction {};

class UsbIsochronousTransferFunction : public UsbTransferFunction {};

class UsbResetDeviceFunction : public UsbConnectionFunction {};
}  // namespace extensions

#endif  // EXTENSIONS_BROWSER_API_USB_USB_API_H_