|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.ibm.jusb.os.AbstractUsbServices com.ibm.jusb.os.linux.LinuxUsbServices
public class LinuxUsbServices
UsbServices implementation for Linux platform.
Field Summary | |
---|---|
static int |
MAX_FIRST_UPDATE_DELAY
|
static int |
TOPOLOGY_UPDATE_DELAY
|
static java.lang.String |
TOPOLOGY_UPDATE_DELAY_KEY
|
static int |
TOPOLOGY_UPDATE_NEW_DEVICE_DELAY
|
static java.lang.String |
TOPOLOGY_UPDATE_NEW_DEVICE_DELAY_KEY
|
static boolean |
TOPOLOGY_UPDATE_USE_POLLING
|
static java.lang.String |
TOPOLOGY_UPDATE_USE_POLLING_KEY
|
static java.lang.String |
TRACE_DEFAULT
|
static java.lang.String |
TRACE_FILENAME
|
static java.lang.String |
TRACE_HOTPLUG
|
static java.lang.String |
TRACE_LEVEL
|
static java.lang.String |
TRACE_OUTPUT
|
static java.lang.String |
TRACE_URB
|
static java.lang.String |
TRACE_XFER
|
static java.lang.String |
TRACING
|
Constructor Summary | |
---|---|
LinuxUsbServices()
|
Method Summary | |
---|---|
java.lang.String |
getApiVersion()
Get the (minimum) version number of the javax.usb API that this UsbServices implements. |
java.lang.String |
getImpDescription()
Get a description of this UsbServices implementation. |
java.lang.String |
getImpVersion()
Get the version number of the UsbServices implementation. |
UsbHub |
getRootUsbHub()
Get the virtual UsbHub to which all physical Host Controller UsbHubs are attached. |
Methods inherited from class com.ibm.jusb.os.AbstractUsbServices |
---|
addUsbServicesListener, getRootUsbHubImp, removeUsbServicesListener |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.usb.UsbServices |
---|
addUsbServicesListener, removeUsbServicesListener |
Field Detail |
---|
public static final int MAX_FIRST_UPDATE_DELAY
public static final int TOPOLOGY_UPDATE_DELAY
public static final java.lang.String TOPOLOGY_UPDATE_DELAY_KEY
public static final int TOPOLOGY_UPDATE_NEW_DEVICE_DELAY
public static final java.lang.String TOPOLOGY_UPDATE_NEW_DEVICE_DELAY_KEY
public static final boolean TOPOLOGY_UPDATE_USE_POLLING
public static final java.lang.String TOPOLOGY_UPDATE_USE_POLLING_KEY
public static final java.lang.String TRACING
public static final java.lang.String TRACE_OUTPUT
public static final java.lang.String TRACE_FILENAME
public static final java.lang.String TRACE_LEVEL
public static final java.lang.String TRACE_DEFAULT
public static final java.lang.String TRACE_HOTPLUG
public static final java.lang.String TRACE_XFER
public static final java.lang.String TRACE_URB
Constructor Detail |
---|
public LinuxUsbServices() throws UsbException
UsbException
Method Detail |
---|
public UsbHub getRootUsbHub() throws UsbException
UsbServices
The USB root hub is a special hub at the top of the topology tree. The USB 1.1 specification mentions root hubs in sec 5.2.3, where it states that 'the host includes an embedded hub called the root hub'. The implication of this seems to be that the (hardware) Host Controller device is the root hub, since the Host Controller device 'emulates' a USB hub, and in systems with only one physical Host Controller device, its emulated hub is in effect the root hub. However when multiple Host Controller devices are considered, there are two (2) options that were considered:
The first configuration results in having to maintain a list of different and completely unconnected device topologies. This means a search for a particular device must be performed on all the device topologies. Since a UsbHub already has a list of UsbDevices, and a UsbHub is a UsbDevice, introducing a new, different list is not a desirable action, since it introduces extra unnecessary steps in performing actions, like searching.
As an example, a recursive search for a certain device in the first configuration involves getting the first root UsbHub, getting all its attached UsbDevices, and checking each device; any of those devices which are UsbHubs can be also searched recursively. Then, the entire operation must be performed on the next root UsbHub, and this is repeated for all the root UsbHubs in the array/list. In the second configuration, the virtual root UsbHub is recursively searched in a single operation.
The second configuration is what is used in this API. The implementation is responsible for creating a single root UsbHub which is completely virtual (and available through the UsbServices object). Every UsbHub attached to this virtual root UsbHub corresponds to a physical Host Controller's emulated hub. I.e., the first level of UsbDevices under the virtual root UsbHub are all UsbHubs corresponding to a particular Host Controller on the system. Note that since the root UsbHub is a virtual hub, the number of ports is not posible to specify; so all that is guaranteed is the number of ports is at least equal to the number of UsbHubs attached to the root UsbHub. The number of ports on the virtual root UsbHub may change if UsbHubs are attached or detached (e.g., if a Host Controller is physically hot-removed from the system or hot-plugged, or if its driver is dynamically loaded, or for any other reason a top-level Host Controller's hub is attached/detached). This API specification suggests that the number of ports for the root UsbHub equal the number of directly attached UsbHubs.
getRootUsbHub
in interface UsbServices
getRootUsbHub
in class AbstractUsbServices
UsbException
- If there is an error accessing javax.usb.public java.lang.String getApiVersion()
UsbServices
This should correspond to the output of (some version of) the
javax.usb.Version
.
getApiVersion
in interface UsbServices
public java.lang.String getImpVersion()
UsbServices
The format should be
getImpVersion
in interface UsbServices
public java.lang.String getImpDescription()
UsbServices
The format is implementation-specific, but should include at least the following:
getImpDescription
in interface UsbServices
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |