--- /dev/null
+// RequestProcessor.java\r
+// $Id: RequestProcessor.java,v 1.1 2010/06/15 12:25:12 smhuang Exp $\r
+// (c) COPYRIGHT MIT and INRIA, 1996.\r
+// Please first read the full copyright statement in file COPYRIGHT.html\r
+\r
+package org.w3c.www.protocol.http;\r
+\r
+/**\r
+ * Request processor interface.\r
+ * Request processors are object whose invocation is done prior to any request\r
+ * launching, and who have the opportunity to answer to the request before it\r
+ * actually goes out to the target server.\r
+ * <p>Typicall request processors will probably be local cache manager, or\r
+ * distributed cache managers, or any other kind of caches. They can also \r
+ * be used to limit what requests are allowed to go out, and other nifty \r
+ * things you can imagine.\r
+ */\r
+\r
+public interface RequestProcessor {\r
+\r
+ /**\r
+ * Can this processor handle this request ?\r
+ * Given the actual request, the processor is called to see if it can \r
+ * actually answer it. It this is the case, the processor should return\r
+ * a valid IngoingReply to be forwarded back to the application.\r
+ * @param request The request to be handled.\r
+ * @return An instance of Reply, or <strong>null</strong> if the\r
+ * processor was unable to answer the request.\r
+ * @exception HttpException If the processor decies that this request\r
+ * is erroneous, and shouldn't proceed further.\r
+ */\r
+\r
+ public Reply processRequest(Request request)\r
+ throws HttpException;\r
+\r
+}\r