C
- The type of the service's configuration.public interface StreamServer<C extends StreamServerConfiguration> extends Runnable
This service typically listens on a socket for TCP connections.
This listening loop is started with the run()
method, this service is
Runnable
. Then Router.received(UpnpStream)
is called with a custom
UpnpStream
. This will start processing of the request and run()
the
UpnpStream
(which is also Runnable
) in a separate thread,
freeing up the receiving thread immediately.
The UpnpStream
then creates a StreamRequestMessage
and calls the UpnpStream.process(org.fourthline.cling.model.message.StreamRequestMessage)
method. The UpnpStream
then returns the response to the network client.
In pseudo-code:
MyStreamServer implements StreamServer { run() { while (not stopped) { Connection con = listenToSocketAndBlock(); router.received( new MyUpnpStream(con) ); } } } MyUpnpStream(con) extends UpnpStream { run() { try { StreamRequestMessage request = // ... Read request StreamResponseMessage response = process(request); // ... Send response responseSent(response)) } catch (Exception ex) { responseException(ex); } } }
An implementation has to be thread-safe.
Modifier and Type | Method and Description |
---|---|
C |
getConfiguration() |
int |
getPort()
This method will be called potentially right after
init(java.net.InetAddress, org.fourthline.cling.transport.Router) , the
actual assigned local port must be available before the server is started. |
void |
init(InetAddress bindAddress,
Router router)
Configures the service and starts any listening sockets.
|
void |
stop()
Stops the service, closes any listening sockets.
|
void init(InetAddress bindAddress, Router router) throws InitializationException
bindAddress
- The address to bind any sockets on.router
- The router which handles the incoming UpnpStream
.InitializationException
- If the service could not be initialized or started.int getPort()
init(java.net.InetAddress, org.fourthline.cling.transport.Router)
, the
actual assigned local port must be available before the server is started.void stop()
C getConfiguration()
Copyright © 2016 4th Line GmbH, Switzerland. All rights reserved.