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