summaryrefslogtreecommitdiff
path: root/cpp/src/Glacier2/Blobject.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Glacier2/Blobject.h')
-rw-r--r--cpp/src/Glacier2/Blobject.h26
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;
};