/*******************************************************************************
* Copyright (c) 2011, 2016 Eurotech and/or its affiliates
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eurotech
*******************************************************************************/
package org.eclipse.kura.usb;
import java.util.List;
import javax.usb.UsbServices;
import org.eclipse.kura.KuraException;
/**
* OSGi interface for getting JSR-80 javax.usb.UsbServices currently available in the system.
*/
public interface UsbService {
/**
* Gets the UsbServices currently available as specified by JSR-80 in the javax.usb
*
* @return The currently available javax.usb.UsbServices
* @throws KuraException
*/
public UsbServices getUsbServices() throws KuraException;
/**
* Gets the USB devices on the gateway
*
* @return The currently attached USB devices
*/
public List<? extends UsbDevice> getUsbDevices();
/**
* Gets the USB block devices on the gateway
*
* @return The currently attached USB block devices
*/
public List<UsbBlockDevice> getUsbBlockDevices();
/**
* Gets the USB network devices on the gateway
*
* @return The currently attached USB network devices
*/
public List<UsbNetDevice> getUsbNetDevices();
/**
* Gets the USB TTY devices on the gateway
*
* @return The currently attached USB TTY devices
*/
public List<UsbTtyDevice> getUsbTtyDevices();
}