1 /* 2 * Copyright (c) 1998-2000 Caucho Technology -- all rights reserved 3 * 4 * This file is part of Resin(R) Open Source 5 * 6 * Each copy or derived work must preserve the copyright notice and this 7 * notice unmodified. 8 * 9 * Resin Open Source is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * Resin Open Source is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty 17 * of NON-INFRINGEMENT. See the GNU General Public License for more 18 * details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with Resin Open Source; if not, write to the 22 * 23 * Free Software Foundation, Inc. 24 * 59 Temple Place, Suite 330 25 * Boston, MA 02111-1307 USA 26 * 27 * @author Scott Ferguson 28 */ 29 30 package com.caucho.server.port; 31 32 import java.io.IOException; 33 34 /** 35 * Protocol specific information for each request. ServerRequest 36 * is reused to reduce memory allocations. 37 * 38 * <p>ServerRequests are created by Server.createRequest() 39 */ 40 public interface ServerRequest { 41 /** 42 * Initialize the connection. At this point, the current thread is the 43 * connection thread. 44 */ 45 public void init(); 46 47 /** 48 * Return true if the connection should wait for a read before 49 * handling the request. 50 */ 51 public boolean isWaitForRead(); 52 53 /** 54 * Handles a new connection. The controlling TcpServer may call 55 * handleConnection again after the connection completes, so 56 * the implementation must initialize any variables for each connection. 57 * 58 * @param conn Information about the connection, including buffered 59 * read and write streams. 60 */ 61 public boolean handleRequest() throws IOException; 62 63 /** 64 * Handles a close event when the connection is closed. 65 */ 66 public void protocolCloseEvent(); 67 } 68