@ApplicationScoped public class ManagedUpnpServiceConfiguration extends Object implements UpnpServiceConfiguration
Modifier and Type | Field and Description |
---|---|
protected DatagramProcessor |
datagramProcessor |
Constructor and Description |
---|
ManagedUpnpServiceConfiguration() |
@Inject protected DatagramProcessor datagramProcessor
@PostConstruct public void init()
public DatagramProcessor getDatagramProcessor()
getDatagramProcessor
in interface UpnpServiceConfiguration
DatagramProcessor
.public SOAPActionProcessor getSoapActionProcessor()
getSoapActionProcessor
in interface UpnpServiceConfiguration
SOAPActionProcessor
.public GENAEventProcessor getGenaEventProcessor()
getGenaEventProcessor
in interface UpnpServiceConfiguration
GENAEventProcessor
.public StreamClient createStreamClient()
createStreamClient
in interface UpnpServiceConfiguration
StreamClient
interface.public MulticastReceiver createMulticastReceiver(NetworkAddressFactory networkAddressFactory)
createMulticastReceiver
in interface UpnpServiceConfiguration
networkAddressFactory
- The configured NetworkAddressFactory
.MulticastReceiver
interface.public DatagramIO createDatagramIO(NetworkAddressFactory networkAddressFactory)
createDatagramIO
in interface UpnpServiceConfiguration
networkAddressFactory
- The configured NetworkAddressFactory
.DatagramIO
interface.public StreamServer createStreamServer(NetworkAddressFactory networkAddressFactory)
createStreamServer
in interface UpnpServiceConfiguration
networkAddressFactory
- The configured NetworkAddressFactory
.StreamServer
interface.public Executor getMulticastReceiverExecutor()
getMulticastReceiverExecutor
in interface UpnpServiceConfiguration
public Executor getDatagramIOExecutor()
getDatagramIOExecutor
in interface UpnpServiceConfiguration
public ExecutorService getStreamServerExecutorService()
getStreamServerExecutorService
in interface UpnpServiceConfiguration
public DeviceDescriptorBinder getDeviceDescriptorBinderUDA10()
getDeviceDescriptorBinderUDA10
in interface UpnpServiceConfiguration
DeviceDescriptorBinder
for the UPnP 1.0 Device Architecture..public ServiceDescriptorBinder getServiceDescriptorBinderUDA10()
getServiceDescriptorBinderUDA10
in interface UpnpServiceConfiguration
ServiceDescriptorBinder
for the UPnP 1.0 Device Architecture..public ServiceType[] getExclusiveServiceTypes()
UpnpServiceConfiguration
Return null
to completely disable remote device and service discovery.
All incoming notifications and search responses will then be dropped immediately.
This is mostly useful in applications that only provide services with no (remote)
control point functionality.
Note that a discovered service type with version 2 or 3 will match an exclusive service type with version 1. UPnP services are required to be backwards compatible, version 2 is a superset of version 1, and version 3 is a superset of version 2, etc.
getExclusiveServiceTypes
in interface UpnpServiceConfiguration
null
return value will disable discovery!
An empty array means all services will be discovered.public boolean isReceivedSubscriptionTimeoutIgnored()
UpnpServiceConfiguration
Some control points have trouble renewing subscriptions properly; enabling this option
in conjunction with a high value for
UserConstants.DEFAULT_SUBSCRIPTION_DURATION_SECONDS
ensures that your devices will not disappear on such control points.
isReceivedSubscriptionTimeoutIgnored
in interface UpnpServiceConfiguration
false
.public UpnpHeaders getDescriptorRetrievalHeaders(RemoteDeviceIdentity identity)
UpnpServiceConfiguration
Some devices might require extra headers to recognize your control point, use this
method to set these headers. They will be used for every descriptor (XML) retrieval
HTTP request by Cling. See ClientInfo
for
action request messages.
getDescriptorRetrievalHeaders
in interface UpnpServiceConfiguration
identity
- The (so far) discovered identity of the remote device.null
or extra HTTP headers.public UpnpHeaders getEventSubscriptionHeaders(RemoteService service)
UpnpServiceConfiguration
Some devices might require extra headers to recognize your control point, use this method to set these headers for GENA subscriptions. Note that the headers will not be applied to actual event messages, only subscribe, unsubscribe, and renewal.
getEventSubscriptionHeaders
in interface UpnpServiceConfiguration
null
or extra HTTP headers.public int getRegistryMaintenanceIntervalMillis()
getRegistryMaintenanceIntervalMillis
in interface UpnpServiceConfiguration
public int getAliveIntervalMillis()
UpnpServiceConfiguration
Use this to advertise local devices at the specified interval, independent of its
DeviceIdentity.maxAgeSeconds
value. Note
that this will increase network traffic.
Some control points (XBMC and other Platinum UPnP SDK based devices, OPPO-93) seem to not properly receive SSDP M-SEARCH replies sent by Cling, but will handle NOTIFY alive messages just fine.
getAliveIntervalMillis
in interface UpnpServiceConfiguration
public Integer getRemoteDeviceMaxAgeSeconds()
UpnpServiceConfiguration
This setting is useful on systems which do not support multicast networking
(Android on HTC phones, for example). On such a system you will not receive messages when a
remote device disappears from the network and you will not receive its periodic heartbeat
alive messages. Only an initial search response (UDP unicast) has been received from the
remote device, with its proposed maximum age. To avoid (early) expiration of the remote
device, you can override its maximum age with this configuration setting, ignoring the
initial maximum age sent by the device. You most likely want to return
0
in this case, so that the remote device is never expired unless you
manually remove it from the Registry
. You typically remove
the device when an action or GENA subscription request to the remote device failed.
getRemoteDeviceMaxAgeSeconds
in interface UpnpServiceConfiguration
null
(the default) to accept the remote device's proposed maximum age, or
0
for unlimited age, or a value in seconds.public Executor getAsyncProtocolExecutor()
getAsyncProtocolExecutor
in interface UpnpServiceConfiguration
public ExecutorService getSyncProtocolExecutorService()
getSyncProtocolExecutorService
in interface UpnpServiceConfiguration
public Namespace getNamespace()
getNamespace
in interface UpnpServiceConfiguration
Namespace
for this UPnP stack.public Executor getRegistryMaintainerExecutor()
getRegistryMaintainerExecutor
in interface UpnpServiceConfiguration
public Executor getRegistryListenerExecutor()
getRegistryListenerExecutor
in interface UpnpServiceConfiguration
public NetworkAddressFactory createNetworkAddressFactory()
createNetworkAddressFactory
in interface UpnpServiceConfiguration
NetworkAddressFactory
interface.public void shutdown()
UpnpServiceConfiguration
UpnpService
on shutdown, useful to e.g. shutdown thread pools.shutdown
in interface UpnpServiceConfiguration
protected NetworkAddressFactory createNetworkAddressFactory(int streamListenPort)
protected SOAPActionProcessor createSOAPActionProcessor()
protected GENAEventProcessor createGENAEventProcessor()
protected DeviceDescriptorBinder createDeviceDescriptorBinderUDA10()
protected ServiceDescriptorBinder createServiceDescriptorBinderUDA10()
protected Namespace createNamespace()
protected ExecutorService getDefaultExecutorService()
protected ExecutorService createDefaultExecutorService()
Copyright © 2016 4th Line GmbH, Switzerland. All rights reserved.