diff options
Diffstat (limited to 'cpp/src/Ice/MetricsObserverI.h')
-rw-r--r-- | cpp/src/Ice/MetricsObserverI.h | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/cpp/src/Ice/MetricsObserverI.h b/cpp/src/Ice/MetricsObserverI.h index 653b0535d93..07b19567652 100644 --- a/cpp/src/Ice/MetricsObserverI.h +++ b/cpp/src/Ice/MetricsObserverI.h @@ -31,14 +31,6 @@ public: virtual std::string operator()(const std::string&) const = 0; }; -class Updater : public IceUtil::Shared -{ -public: - - virtual void update() = 0; -}; -typedef IceUtil::Handle<Updater> UpdaterPtr; - template<typename T> class MetricsHelperT : public MetricsHelper { public: @@ -268,6 +260,14 @@ protected: }; }; +class Updater : public IceUtil::Shared +{ +public: + + virtual void update() = 0; +}; +typedef IceUtil::Handle<Updater> UpdaterPtr; + template<typename T> class UpdaterT : public Updater { public: @@ -288,7 +288,17 @@ private: void (T::*_fn)(); }; -class ObserverI; +template<typename T> Updater* +newUpdater(const IceUtil::Handle<T>& updater, void (T::*fn)()) +{ + return new UpdaterT<T>(updater.get(), fn); +} + +template<typename T> Updater* +newUpdater(const IceInternal::Handle<T>& updater, void (T::*fn)()) +{ + return new UpdaterT<T>(updater.get(), fn); +} template<typename T> class ObserverT : virtual public Ice::Instrumentation::Observer { @@ -413,22 +423,6 @@ private: IceUtilInternal::StopWatch _watch; }; -class ObserverI : virtual public Ice::Instrumentation::Observer, public ObserverT<Metrics> -{ -}; - -template<typename T> Updater* -newUpdater(const IceUtil::Handle<T>& updater, void (T::*fn)()) -{ - return new UpdaterT<T>(updater.get(), fn); -} - -template<typename T> Updater* -newUpdater(const IceInternal::Handle<T>& updater, void (T::*fn)()) -{ - return new UpdaterT<T>(updater.get(), fn); -} - template<typename ObserverImplType> class ObserverFactoryT : public Updater, private IceUtil::Mutex { @@ -566,6 +560,10 @@ private: UpdaterPtr _updater; }; +class ObserverI : virtual public Ice::Instrumentation::Observer, public ObserverT<Metrics> +{ +}; + } #endif |