summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/BatchRequestInterceptor.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Ice/BatchRequestInterceptor.h')
-rw-r--r--cpp/include/Ice/BatchRequestInterceptor.h35
1 files changed, 34 insertions, 1 deletions
diff --git a/cpp/include/Ice/BatchRequestInterceptor.h b/cpp/include/Ice/BatchRequestInterceptor.h
index 70c6a7a8e61..18f445b7e66 100644
--- a/cpp/include/Ice/BatchRequestInterceptor.h
+++ b/cpp/include/Ice/BatchRequestInterceptor.h
@@ -16,6 +16,10 @@
namespace Ice
{
+/**
+ * Represents an invocation on a proxy configured for batch-oneway or batch-datagram.
+ * \headerfile Ice/Ice.h
+ */
class BatchRequest
{
public:
@@ -24,19 +28,48 @@ public:
{
}
+ /**
+ * Queues the request for an eventual flush.
+ */
virtual void enqueue() const = 0;
+
+ /**
+ * Obtains the size of the request.
+ * @return The number of bytes consumed by the request.
+ */
virtual int getSize() const = 0;
+
+ /**
+ * Obtains the name of the operation.
+ * @return The operation name.
+ */
virtual const std::string& getOperation() const = 0;
+
+ /**
+ * Obtains the proxy on which the batch request was invoked.
+ * @return The originating proxy.
+ */
virtual const Ice::ObjectPrxPtr& getProxy() const = 0;
};
#ifndef ICE_CPP11_MAPPING
+/**
+ * The base class for a batch request interceptor. Subclasses must implement enqueue.
+ * The interceptor can be installed via InitializationData.
+ * \headerfile Ice/Ice.h
+ */
class BatchRequestInterceptor : public IceUtil::Shared
{
public:
- virtual void enqueue(const BatchRequest&, int, int) = 0;
+ /**
+ * Called by the Ice run time to enqueue a batch request.
+ * @param req An object representing the batch request.
+ * @param count The number of requests currently in the queue.
+ * @param size The number of bytes consumed by the requests currently in the queue.
+ */
+ virtual void enqueue(const BatchRequest& req, int count, int size) = 0;
};
typedef IceUtil::Handle<BatchRequestInterceptor> BatchRequestInterceptorPtr;