|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
C
- The type of the service's configuration.public interface StreamServer<C extends StreamServerConfiguration>
Service for receiving TCP (HTTP) streams, one per bound IP address.
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.
Method Summary | |
---|---|
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. |
Methods inherited from interface java.lang.Runnable |
---|
run |
Method Detail |
---|
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()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |