Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / jigsaw / src / org / w3c / www / protocol / http / RequestProcessor.java
diff --git a/JMCR-Stable/real-world application/jigsaw/src/org/w3c/www/protocol/http/RequestProcessor.java b/JMCR-Stable/real-world application/jigsaw/src/org/w3c/www/protocol/http/RequestProcessor.java
new file mode 100644 (file)
index 0000000..f312fbc
--- /dev/null
@@ -0,0 +1,36 @@
+// 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