summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/DispatchInterceptor.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Ice/DispatchInterceptor.h')
-rw-r--r--cpp/include/Ice/DispatchInterceptor.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/cpp/include/Ice/DispatchInterceptor.h b/cpp/include/Ice/DispatchInterceptor.h
index 5233f2fadbb..a2aec7a9450 100644
--- a/cpp/include/Ice/DispatchInterceptor.h
+++ b/cpp/include/Ice/DispatchInterceptor.h
@@ -15,13 +15,28 @@
namespace Ice
{
+/**
+ * Base class for a dispatch interceptor, which is a servant that dispatches requests
+ * to another servant. A subclass must implement the dispatch method. A dispatch interceptor
+ * can be registered with an object adapter just like any other servant.
+ * \headerfile Ice/Ice.h
+ */
class ICE_API DispatchInterceptor : public virtual Object
{
public:
- virtual bool dispatch(Request&) = 0;
+ /**
+ * Called by the Ice run time when a new request needs to be dispatched. The implementation
+ * must eventually call ice_dispatch on the delegate servant and pass the given request object.
+ * @param req An opaque object representing the request to be dispatched.
+ * @return True if the request was dispatched synchronously, or false if the request was
+ * dispatched asynchronously.
+ */
+ virtual bool dispatch(Request& req) = 0;
+ /// \cond INTERNAL
virtual bool _iceDispatch(IceInternal::Incoming&, const Current&);
+ /// \endcond
};
ICE_DEFINE_PTR(DispatchInterceptorPtr, DispatchInterceptor);