public class RetrieveRemoteDescriptors extends Object implements Runnable
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.
Modifier and Type | Field and Description |
---|---|
protected List<UDN> |
errorsAlreadyLogged |
Constructor and Description |
---|
RetrieveRemoteDescriptors(UpnpService upnpService,
RemoteDevice rd) |
Modifier and Type | Method and Description |
---|---|
protected void |
describe() |
protected void |
describe(String descriptorXML) |
protected RemoteService |
describeService(RemoteService service) |
protected RemoteDevice |
describeServices(RemoteDevice currentDevice) |
protected List<RemoteService> |
filterExclusiveServices(RemoteService[] services) |
UpnpService |
getUpnpService() |
void |
run() |
public RetrieveRemoteDescriptors(UpnpService upnpService, RemoteDevice rd)
public UpnpService getUpnpService()
protected void describe() throws RouterException
RouterException
protected void describe(String descriptorXML) throws RouterException
RouterException
protected RemoteDevice describeServices(RemoteDevice currentDevice) throws RouterException, DescriptorBindingException, ValidationException
protected RemoteService describeService(RemoteService service) throws RouterException, DescriptorBindingException, ValidationException
protected List<RemoteService> filterExclusiveServices(RemoteService[] services)
Copyright © 2016 4th Line GmbH, Switzerland. All rights reserved.