diff options
| author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-04-09 21:59:04 +0200 | 
|---|---|---|
| committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-04-09 21:59:04 +0200 | 
| commit | afb415dcaf614c177176a00220f3b0418daada1f (patch) | |
| tree | 84524979c25714aaf1b8587ecdd07cd5df65a618 /src/main/java/com | |
| parent | b0bbef369821c6ea45974a5a25a13c99a33d52e0 (diff) | |
Use buffered readers on server side.
(Not much (any?) effect because the protobuf implementation already does
some buffering.)
Diffstat (limited to 'src/main/java/com')
| -rw-r--r-- | src/main/java/com/orbekk/protobuf/ConnectionHandler.java | 26 | 
1 files changed, 17 insertions, 9 deletions
diff --git a/src/main/java/com/orbekk/protobuf/ConnectionHandler.java b/src/main/java/com/orbekk/protobuf/ConnectionHandler.java index 1c93a05..d9bc6da 100644 --- a/src/main/java/com/orbekk/protobuf/ConnectionHandler.java +++ b/src/main/java/com/orbekk/protobuf/ConnectionHandler.java @@ -1,5 +1,7 @@  package com.orbekk.protobuf; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream;  import java.io.IOException;  import java.net.Socket;  import java.util.concurrent.ArrayBlockingQueue; @@ -14,10 +16,12 @@ public class ConnectionHandler {      private class IncomingHandler implements Runnable {          @Override public void run() {              dispatcher.start(); -            while (!connection.isClosed()) { -                try { +            try { +                BufferedInputStream input = new BufferedInputStream( +                        connection.getInputStream()); +                while (!connection.isClosed()) {                      Data.Request r = Data.Request.parseDelimitedFrom( -                            connection.getInputStream()); +                            input);                      if (r == null) {                          tryCloseConnection();                      } else { @@ -28,9 +32,9 @@ public class ConnectionHandler {                              return;                          }                      } -                } catch (IOException e) { -                    tryCloseConnection();                  } +            } catch (IOException e) { +                tryCloseConnection();              }              dispatcher.interrupt();          } @@ -38,17 +42,21 @@ public class ConnectionHandler {      private class OutgoingHandler implements Runnable {          @Override public void run() { -            while (!connection.isClosed()) { -                try { +            try { +                BufferedOutputStream output = new BufferedOutputStream( +                        connection.getOutputStream()); +                while (!connection.isClosed()) {                      Data.Response response = dispatcherOutput.take();                      try {                          response.writeDelimitedTo(connection.getOutputStream());                      } catch (IOException e) {                          tryCloseConnection();                      } -                } catch (InterruptedException e) { -                    tryCloseConnection();                  } +            } catch (InterruptedException e) { +                tryCloseConnection(); +            } catch (IOException e) { +                tryCloseConnection();              }              dispatcher.interrupt();          }  | 
