From a4f93259dc3494d98addf38e69b87eb557d432b3 Mon Sep 17 00:00:00 2001 From: Benoit Foucher Date: Fri, 27 Jun 2014 10:31:41 +0200 Subject: Better collocation optimization, fix for ICE-5489, ICE-5484 --- cpp/src/Ice/RequestHandler.h | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'cpp/src/Ice/RequestHandler.h') diff --git a/cpp/src/Ice/RequestHandler.h b/cpp/src/Ice/RequestHandler.h index 6f3511225c4..23ce100c2e4 100644 --- a/cpp/src/Ice/RequestHandler.h +++ b/cpp/src/Ice/RequestHandler.h @@ -11,6 +11,7 @@ #define ICE_REQUEST_HANDLER_H #include +#include #include #include @@ -18,15 +19,39 @@ #include #include +namespace Ice +{ + +class LocalException; + +}; + namespace IceInternal { class BasicStream; -class Outgoing; -class BatchOutgoing; class OutgoingMessageCallback; +// +// An exception wrapper, which is used to notify that the request +// handler should be cleared and the invocation retried. +// +class RetryException +{ +public: + + RetryException(const Ice::LocalException&); + RetryException(const RetryException&); + + const Ice::LocalException* get() const; + +private: + + + IceUtil::UniquePtr _ex; +}; + class RequestHandler : virtual public ::IceUtil::Shared { public: -- cgit v1.2.3