Package org.jupnp.protocol
Klasse RetrieveRemoteDescriptors
java.lang.Object
org.jupnp.protocol.RetrieveRemoteDescriptors
- Alle implementierten Schnittstellen:
Runnable
Retrieves all remote device XML descriptors, parses them, creates an immutable device and service metadata graph.
This implementation encapsulates all steps which are necessary to create a fully usable and populated
device metadata graph of a particular UPnP device. It starts with an unhydrated and typically just
discovered RemoteDevice, the only property that has to be available is
its RemoteDeviceIdentity.
This protocol implementation will then retrieve the device's XML descriptor, parse it, and retrieve and
parse all service descriptors until all device and service metadata has been retrieved. The fully
hydrated device is then added to the Registry.
Any descriptor retrieval, parsing, or validation error of the metadata will abort this protocol with a warning message in the log.
- Autor:
- Christian Bauer, Kai Kreuzer - fixed service and embedded device processing
-
Feldübersicht
Felder -
Konstruktorübersicht
Konstruktoren -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungprotected voiddescribe()protected voidprotected RemoteServicedescribeService(RemoteService service) protected RemoteDevicedescribeServices(RemoteDevice currentDevice) protected List<RemoteService> filterExclusiveServices(RemoteService[] services) static booleanCheck if the descriptor that is going to be retrieved by this task is already being retrieved by another task.voidrun()
-
Felddetails
-
errorsAlreadyLogged
-
-
Konstruktordetails
-
RetrieveRemoteDescriptors
-
-
Methodendetails
-
getUpnpService
-
run
public void run() -
describe
- Löst aus:
RouterException
-
describe
- Löst aus:
RouterException
-
describeServices
protected RemoteDevice describeServices(RemoteDevice currentDevice) throws RouterException, DescriptorBindingException, ValidationException -
describeService
protected RemoteService describeService(RemoteService service) throws RouterException, DescriptorBindingException, ValidationException -
filterExclusiveServices
-
isRetrievalInProgress
Check if the descriptor that is going to be retrieved by this task is already being retrieved by another task. Can be used for optimization to prevent submitting tasks that are not going to retrieve a new descriptor.- Parameter:
rd- The remote device to check- Gibt zurück:
truethe descriptor is currently being retrieved, otherwisefalse- Löst aus:
IllegalArgumentException- if the remote device isnull
-