diff options
Diffstat (limited to 'cpp/include/Ice/OutgoingAsync.h')
-rw-r--r-- | cpp/include/Ice/OutgoingAsync.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/cpp/include/Ice/OutgoingAsync.h b/cpp/include/Ice/OutgoingAsync.h index 1bd2a7e34b8..b8ae04679a1 100644 --- a/cpp/include/Ice/OutgoingAsync.h +++ b/cpp/include/Ice/OutgoingAsync.h @@ -258,6 +258,49 @@ private: Ice::ObjectPrx _proxy; }; +class ICE_API ConnectionBatchOutgoingAsync : public BatchOutgoingAsync +{ +public: + + ConnectionBatchOutgoingAsync(const Ice::ConnectionIPtr&, const InstancePtr&, const std::string&, + const CallbackBasePtr&, const Ice::LocalObjectPtr&); + + void __send(); + + virtual Ice::ConnectionPtr getConnection() const; + +private: + + const Ice::ConnectionIPtr _connection; +}; + +class ICE_API CommunicatorBatchOutgoingAsync : public BatchOutgoingAsync +{ +public: + + CommunicatorBatchOutgoingAsync(const Ice::CommunicatorPtr&, const InstancePtr&, const std::string&, + const CallbackBasePtr&, const Ice::LocalObjectPtr&); + + void flushConnection(const Ice::ConnectionPtr&); + void ready(); + + void completed(const Ice::AsyncResultPtr&); + void sent(const Ice::AsyncResultPtr&); + + virtual Ice::CommunicatorPtr + getCommunicator() const + { + return _communicator; + } + +private: + + void check(const Ice::AsyncResultPtr&, const Ice::LocalException*, bool); + + const Ice::CommunicatorPtr _communicator; + int _useCount; +}; + // // Base class for all callbacks. // |