diff options
author | Benoit Foucher <benoit@zeroc.com> | 2015-03-10 12:12:10 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2015-03-10 12:12:10 +0100 |
commit | c6ca68d97aa5bbc2a172e3e35171b5452657fa22 (patch) | |
tree | 46edcca4c8e313285a205bf6fad7c56c452c0cc0 /cpp/src/Ice/ConnectionI.h | |
parent | Minor JS style fixes (diff) | |
download | ice-c6ca68d97aa5bbc2a172e3e35171b5452657fa22.tar.bz2 ice-c6ca68d97aa5bbc2a172e3e35171b5452657fa22.tar.xz ice-c6ca68d97aa5bbc2a172e3e35171b5452657fa22.zip |
ICE-6170 - fixed behavior of batch requests
Diffstat (limited to 'cpp/src/Ice/ConnectionI.h')
-rw-r--r-- | cpp/src/Ice/ConnectionI.h | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/cpp/src/Ice/ConnectionI.h b/cpp/src/Ice/ConnectionI.h index adcdd8ea318..aeedf315342 100644 --- a/cpp/src/Ice/ConnectionI.h +++ b/cpp/src/Ice/ConnectionI.h @@ -36,6 +36,7 @@ #include <Ice/Dispatcher.h> #include <Ice/ObserverHelper.h> #include <Ice/ConnectionAsync.h> +#include <Ice/BatchRequestQueueF.h> #include <Ice/ACM.h> #include <deque> @@ -166,12 +167,10 @@ public: void monitor(const IceUtil::Time&, const IceInternal::ACMConfig&); - bool sendRequest(IceInternal::Outgoing*, bool, bool); - IceInternal::AsyncStatus sendAsyncRequest(const IceInternal::OutgoingAsyncPtr&, bool, bool); + bool sendRequest(IceInternal::OutgoingBase*, bool, bool, int); + IceInternal::AsyncStatus sendAsyncRequest(const IceInternal::OutgoingAsyncBasePtr&, bool, bool, int); - void prepareBatchRequest(IceInternal::BasicStream*); - void finishBatchRequest(IceInternal::BasicStream*, bool); - void abortBatchRequest(); + IceInternal::BatchRequestQueuePtr getBatchRequestQueue() const; virtual void flushBatchRequests(); // From Connection. @@ -186,9 +185,6 @@ public: virtual void end_flushBatchRequests(const AsyncResultPtr&); - bool flushBatchRequests(IceInternal::OutgoingBase*); - IceInternal::AsyncStatus flushAsyncBatchRequests(const IceInternal::OutgoingAsyncBasePtr&); - virtual void setCallback(const ConnectionCallbackPtr&); virtual void setACM(const IceUtil::Optional<int>&, const IceUtil::Optional<ACMClose>&, @@ -235,7 +231,8 @@ public: void exception(const LocalException&); void dispatch(const StartCallbackPtr&, const std::vector<OutgoingMessage>&, Byte, Int, Int, - const IceInternal::ServantManagerPtr&, const ObjectAdapterPtr&, const IceInternal::OutgoingAsyncPtr&, + const IceInternal::ServantManagerPtr&, const ObjectAdapterPtr&, + const IceInternal::OutgoingAsyncBasePtr&, const ConnectionCallbackPtr&, IceInternal::BasicStream&); void finish(bool); @@ -280,7 +277,7 @@ private: #endif IceInternal::SocketOperation parseMessage(IceInternal::BasicStream&, Int&, Int&, Byte&, IceInternal::ServantManagerPtr&, ObjectAdapterPtr&, - IceInternal::OutgoingAsyncPtr&, ConnectionCallbackPtr&, int&); + IceInternal::OutgoingAsyncBasePtr&, ConnectionCallbackPtr&, int&); void invokeAll(IceInternal::BasicStream&, Int, Int, Byte, const IceInternal::ServantManagerPtr&, const ObjectAdapterPtr&); @@ -333,21 +330,16 @@ private: Int _nextRequestId; - std::map<Int, IceInternal::Outgoing*> _requests; - std::map<Int, IceInternal::Outgoing*>::iterator _requestsHint; + std::map<Int, IceInternal::OutgoingBase*> _requests; + std::map<Int, IceInternal::OutgoingBase*>::iterator _requestsHint; - std::map<Int, IceInternal::OutgoingAsyncPtr> _asyncRequests; - std::map<Int, IceInternal::OutgoingAsyncPtr>::iterator _asyncRequestsHint; + std::map<Int, IceInternal::OutgoingAsyncBasePtr> _asyncRequests; + std::map<Int, IceInternal::OutgoingAsyncBasePtr>::iterator _asyncRequestsHint; IceUtil::UniquePtr<LocalException> _exception; const size_t _messageSizeMax; - const size_t _batchAutoFlushSize; - IceInternal::BasicStream _batchStream; - bool _batchStreamInUse; - int _batchRequestNum; - bool _batchRequestCompress; - size_t _batchMarker; + IceInternal::BatchRequestQueuePtr _batchRequestQueue; std::deque<OutgoingMessage> _sendStreams; |