summaryrefslogtreecommitdiff
path: root/java/src/Ice/DispatchInterceptor.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/Ice/DispatchInterceptor.java')
-rw-r--r--java/src/Ice/DispatchInterceptor.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/java/src/Ice/DispatchInterceptor.java b/java/src/Ice/DispatchInterceptor.java
index 5889d1b2977..4901aef9ab2 100644
--- a/java/src/Ice/DispatchInterceptor.java
+++ b/java/src/Ice/DispatchInterceptor.java
@@ -9,8 +9,29 @@
package Ice;
+/**
+ * Base class that allows a server intercept incoming requests.
+ * The application must derive a concrete class from <code>DispatchInterceptor</code>
+ * that implements the <code>dispatch</code> operation. An instance of this derived
+ * class can be registered with an object adapter like any other servant.
+ * <p>
+ * A dispatch interceptor is useful particularly to automatically retry requests
+ * that have failed due to a recoverable error condition.
+ **/
public abstract class DispatchInterceptor extends ObjectImpl
{
+ /**
+ * Called by the Ice run time to dispatch an incoming request. The implementation
+ * of <code>dispatch</code> must dispatch the request to the actual servant.
+ *
+ * @param request The details of the incoming request.
+ * @return For synchronous dispatch, the return value must be whatever is
+ * returned <code>ice_dispatch</code>. For asynchronous dispatch, the return
+ * value must be <code>DispatchAsync</code>.
+ *
+ * @see Request
+ * @see DispatchStatus
+ **/
public abstract DispatchStatus
dispatch(Request request);