diff options
Diffstat (limited to 'cpp/src/Glacier2/Blobject.h')
-rw-r--r-- | cpp/src/Glacier2/Blobject.h | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/cpp/src/Glacier2/Blobject.h b/cpp/src/Glacier2/Blobject.h index c6d049704a3..824bbf3eff2 100644 --- a/cpp/src/Glacier2/Blobject.h +++ b/cpp/src/Glacier2/Blobject.h @@ -12,37 +12,35 @@ namespace Glacier2 { -class Blobject : public Ice::BlobjectArrayAsync +class Blobject : public Ice::BlobjectArrayAsync, public std::enable_shared_from_this<Blobject> { public: - Blobject(const InstancePtr&, const Ice::ConnectionPtr&, const Ice::Context&); - virtual ~Blobject(); + Blobject(std::shared_ptr<Instance>, std::shared_ptr<Ice::Connection>, const Ice::Context&); void destroy(); - virtual void updateObserver(const Glacier2::Instrumentation::SessionObserverPtr&); + virtual void updateObserver(const std::shared_ptr<Instrumentation::SessionObserver>&); - void invokeResponse(bool, const std::pair<const Ice::Byte*, const Ice::Byte*>&, - const Ice::AMD_Object_ice_invokePtr&); - void invokeSent(bool, const Ice::AMD_Object_ice_invokePtr&); - void invokeException(const Ice::Exception&, const Ice::AMD_Object_ice_invokePtr&); + void invokeException(std::exception_ptr, std::function<void(std::exception_ptr)>&&); protected: - void invoke(Ice::ObjectPrx&, const Ice::AMD_Object_ice_invokePtr&, - const std::pair<const Ice::Byte*, const Ice::Byte*>&, const Ice::Current&); + void invoke(std::shared_ptr<Ice::ObjectPrx>&, + const std::pair<const Ice::Byte*, const Ice::Byte*>&, + std::function<void(bool, const std::pair<const Ice::Byte*, const Ice::Byte*>&)>, + std::function<void(std::exception_ptr)>, + const Ice::Current&); - const InstancePtr _instance; - const Ice::ConnectionPtr _reverseConnection; + const std::shared_ptr<Instance> _instance; + const std::shared_ptr<Ice::Connection> _reverseConnection; private: const bool _forwardContext; - const bool _alwaysBatch; const int _requestTraceLevel; const int _overrideTraceLevel; - const RequestQueuePtr _requestQueue; + const std::shared_ptr<RequestQueue> _requestQueue; const Ice::Context _context; }; |