summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/ObserverHelper.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Ice/ObserverHelper.h')
-rw-r--r--cpp/include/Ice/ObserverHelper.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/cpp/include/Ice/ObserverHelper.h b/cpp/include/Ice/ObserverHelper.h
index 3803b9e5b6a..97b139e9cce 100644
--- a/cpp/include/Ice/ObserverHelper.h
+++ b/cpp/include/Ice/ObserverHelper.h
@@ -10,7 +10,8 @@
#ifndef ICE_OBSERVERHELPER_H
#define ICE_OBSERVERHELPER_H
-#include <Ice/ObserverF.h>
+#include <Ice/Observer.h>
+#include <Ice/ProxyF.h>
namespace IceInternal
{
@@ -99,6 +100,28 @@ protected:
TPtr _observer;
};
+class InvocationObserver : public ObserverHelperT<Ice::Instrumentation::InvocationObserver>
+{
+public:
+
+ InvocationObserver(IceProxy::Ice::Object*, const std::string&, const Ice::Context*);
+ InvocationObserver();
+
+ void attach(IceProxy::Ice::Object*, const std::string&, const Ice::Context*);
+
+ void retry()
+ {
+ if(_observer)
+ {
+ InvocationObserver::retryImpl();
+ }
+ }
+
+private:
+
+ void retryImpl();
+};
+
}
#endif