// Path: java/client/src/main/java/jp/co/rakuten/rit/roma/client/Connection.java
// public class Connection {
//   public Socket sock;
// 
//   public ExtInputStream in;
// 
//   public OutputStream out;
// 
//   /**
//    * Construct a connection to a ROMA process.
//    * 
//    * @param sock
//    *          - a socket of the ROMA process to connect to
//    * @throws IOException
//    *           - if creating this connection fails
//    */
//   public Connection(final Socket sock) throws IOException {
//     this.sock = sock;
//     this.in = new ExtInputStream(sock.getInputStream());
//     this.out = new BufferedOutputStream(sock.getOutputStream());
//   }
// 
//   public void setTimeout(int timeout) throws SocketException {
// 	  this.sock.setSoTimeout(timeout);
//   }
//   
//   /**
//    * Close this connection.
//    * 
//    * @throws IOException
//    *           - if closing this connection fails
//    */
//   public void close() throws IOException {
//     if (in != null) {
//       in.close();
//     }
//     if (out != null) {
//       out.close();
//     }
//     if (sock != null) {
//       sock.close();
//     }
//   }
// 
//   public static long TIME = 0;
// 
//   public class ExtInputStream extends BufferedInputStream {
// 
//     private byte[] one_byte = new byte[1];
// 
//     ExtInputStream(InputStream in) {
//       super(in);
//     }
// 
//     public void read(int byteLen) throws IOException {
//       for (int i = 0; i < byteLen; ++i) {
//         super.read(one_byte);
//       }
//     }
// 
//     public String readLine() throws IOException {
//       StringBuilder ret = new StringBuilder();
// 
//       long t = System.currentTimeMillis();
// 
//       while (super.read(one_byte) > 0) {
//         if (one_byte[0] == 0x0d) { // \r
//           break;
//         } else {
//           ret.append((char) one_byte[0]);
//         }
//       }
// 
//       TIME = TIME + (System.currentTimeMillis() - t);
// 
//       super.read(one_byte); // \n
//       return ret.toString();
//     }
//   }
// }
// 
// Path: java/client/src/main/java/jp/co/rakuten/rit/roma/client/ConnectionPool.java
// public interface ConnectionPool {
//   public Connection get(Node node) throws IOException;
// 
//   public void put(Node node, Connection conn) throws IOException;
// 
//   public void delete(Node node, Connection conn);
// 
//   public void deleteAll(Node node);
// 
//   public void closeAll();
// }
// 
// Path: java/client/src/main/java/jp/co/rakuten/rit/roma/client/Node.java
// public class Node {
//   public static List<Node> create(List<String> IDs) {
//     List<Node> result = new ArrayList<Node>(IDs.size());
//     Iterator<String> iter = IDs.iterator();
//     while (iter.hasNext()) {
//       result.add(create(iter.next()));
//     }
//     return result;
//   }
// 
//   public static Node create(String ID) {
//     int index = ID.indexOf('_');
//     String host = ID.substring(0, index);
//     try {
//       int port = Integer.parseInt(ID.substring(index + 1, ID.length()));
//       return new Node(host, port);
//     } catch (NumberFormatException e) {
//       throw e;
//       // return null;
//     }
//   }
// 
//   String host;
//   int port;
//   String ID;
// 
//   Node(String host, int port) {
//     this.host = host;
//     this.port = port;
//     this.ID = this.host + "_" + this.port;
//   }
// 
//   public String getHost() {
//     return host;
//   }
// 
//   public int getPort() {
//     return port;
//   }
// 
//   @Override
//   public int hashCode() {
//     return this.ID.hashCode();
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (!(obj instanceof Node)) {
//       return false;
//     }
// 
//     Node n = (Node) obj;
//     return n.host.equals(this.host) && n.port == this.port;
//   }
// 
//   @Override
//   public String toString() {
//     StringBuilder sb = new StringBuilder();
//     sb.append(host).append("_").append(port);
//     return sb.toString();
//   }
// }


import java.io.IOException;
import jp.co.rakuten.rit.roma.client.Connection;
import jp.co.rakuten.rit.roma.client.ConnectionPool;
import jp.co.rakuten.rit.roma.client.Node;
package jp.co.rakuten.rit.roma.client.commands;



public class MockConnectionPool implements ConnectionPool {
  public void closeAll() {
  }

// Path: java/client/src/main/java/jp/co/rakuten/rit/roma/client/Connection.java
// public class Connection {
//   public Socket sock;
// 
//   public ExtInputStream in;
// 
//   public OutputStream out;
// 
//   /**
//    * Construct a connection to a ROMA process.
//    * 
//    * @param sock
//    *          - a socket of the ROMA process to connect to
//    * @throws IOException
//    *           - if creating this connection fails
//    */
//   public Connection(final Socket sock) throws IOException {
//     this.sock = sock;
//     this.in = new ExtInputStream(sock.getInputStream());
//     this.out = new BufferedOutputStream(sock.getOutputStream());
//   }
// 
//   public void setTimeout(int timeout) throws SocketException {
// 	  this.sock.setSoTimeout(timeout);
//   }
//   
//   /**
//    * Close this connection.
//    * 
//    * @throws IOException
//    *           - if closing this connection fails
//    */
//   public void close() throws IOException {
//     if (in != null) {
//       in.close();
//     }
//     if (out != null) {
//       out.close();
//     }
//     if (sock != null) {
//       sock.close();
//     }
//   }
// 
//   public static long TIME = 0;
// 
//   public class ExtInputStream extends BufferedInputStream {
// 
//     private byte[] one_byte = new byte[1];
// 
//     ExtInputStream(InputStream in) {
//       super(in);
//     }
// 
//     public void read(int byteLen) throws IOException {
//       for (int i = 0; i < byteLen; ++i) {
//         super.read(one_byte);
//       }
//     }
// 
//     public String readLine() throws IOException {
//       StringBuilder ret = new StringBuilder();
// 
//       long t = System.currentTimeMillis();
// 
//       while (super.read(one_byte) > 0) {
//         if (one_byte[0] == 0x0d) { // \r
//           break;
//         } else {
//           ret.append((char) one_byte[0]);
//         }
//       }
// 
//       TIME = TIME + (System.currentTimeMillis() - t);
// 
//       super.read(one_byte); // \n
//       return ret.toString();
//     }
//   }
// }
// 
// Path: java/client/src/main/java/jp/co/rakuten/rit/roma/client/ConnectionPool.java
// public interface ConnectionPool {
//   public Connection get(Node node) throws IOException;
// 
//   public void put(Node node, Connection conn) throws IOException;
// 
//   public void delete(Node node, Connection conn);
// 
//   public void deleteAll(Node node);
// 
//   public void closeAll();
// }
// 
// Path: java/client/src/main/java/jp/co/rakuten/rit/roma/client/Node.java
// public class Node {
//   public static List<Node> create(List<String> IDs) {
//     List<Node> result = new ArrayList<Node>(IDs.size());
//     Iterator<String> iter = IDs.iterator();
//     while (iter.hasNext()) {
//       result.add(create(iter.next()));
//     }
//     return result;
//   }
// 
//   public static Node create(String ID) {
//     int index = ID.indexOf('_');
//     String host = ID.substring(0, index);
//     try {
//       int port = Integer.parseInt(ID.substring(index + 1, ID.length()));
//       return new Node(host, port);
//     } catch (NumberFormatException e) {
//       throw e;
//       // return null;
//     }
//   }
// 
//   String host;
//   int port;
//   String ID;
// 
//   Node(String host, int port) {
//     this.host = host;
//     this.port = port;
//     this.ID = this.host + "_" + this.port;
//   }
// 
//   public String getHost() {
//     return host;
//   }
// 
//   public int getPort() {
//     return port;
//   }
// 
//   @Override
//   public int hashCode() {
//     return this.ID.hashCode();
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (!(obj instanceof Node)) {
//       return false;
//     }
// 
//     Node n = (Node) obj;
//     return n.host.equals(this.host) && n.port == this.port;
//   }
// 
//   @Override
//   public String toString() {
//     StringBuilder sb = new StringBuilder();
//     sb.append(host).append("_").append(port);
//     return sb.toString();
//   }
// }


// Path: java/client/src/test/java/jp/co/rakuten/rit/roma/client/commands/MockConnectionPool.java
import java.io.IOException;
import jp.co.rakuten.rit.roma.client.Connection;
import jp.co.rakuten.rit.roma.client.ConnectionPool;
import jp.co.rakuten.rit.roma.client.Node;

package jp.co.rakuten.rit.roma.client.commands;



public class MockConnectionPool implements ConnectionPool {
  public void closeAll() {
  }

  public void delete(Node node, Connection conn) {