|
||||||||||
| 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 | |||||||||