1 package net.sourceforge.backpedal.impl.server;
2
3 import net.sourceforge.backpedal.api.server.Dispatcher;
4 import net.sourceforge.backpedal.api.server.ServerControl;
5 import net.sourceforge.backpedal.api.server.ServerRunnable;
6 import net.sourceforge.backpedal.impl.AbstractComponent;
7
8 import java.io.BufferedReader;
9 import java.io.IOException;
10 import java.io.InputStreamReader;
11 import java.net.ServerSocket;
12 import java.net.Socket;
13
14 public class ServerRunnableImpl extends AbstractComponent implements ServerRunnable, Runnable {
15 private ServerSocket serverSocket = null;
16 private ServerControl control = null;
17 private final Dispatcher dispatcher;
18
19 public ServerRunnableImpl(Dispatcher dispatcher) {
20 this.dispatcher = dispatcher;
21 }
22
23 public void setServerSocket(ServerSocket serverSocket) {
24 this.serverSocket = serverSocket;
25 }
26
27 public void setServerControl(ServerControl control) {
28 this.control = control;
29 }
30
31 public Runnable getRunnable() {
32 return this;
33 }
34
35 public void run() {
36 while (control.continueRunning()) {
37 try {
38 loop();
39 } catch (Exception e) {
40 log().error("Exception in Backpedal server thread", e);
41 }
42 }
43 }
44
45 private void loop() throws IOException {
46 final Socket socket = serverSocket.accept();
47 final BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
48 final String line = reader.readLine();
49 reader.close();
50 socket.close();
51 dispatcher.dispatch(line);
52 }
53 }
This page was automatically generated by Maven