Mercurial > hg > orthanc-stone
diff Framework/Messages/IObserver.h @ 1059:e713f1a99861 broker
replacing MessageBroker by weak_ptr
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 11 Oct 2019 17:08:34 +0200 |
parents | f6be9412e42a |
children | e146743f6cdc |
line wrap: on
line diff
--- a/Framework/Messages/IObserver.h Fri Oct 11 13:38:35 2019 +0200 +++ b/Framework/Messages/IObserver.h Fri Oct 11 17:08:34 2019 +0200 @@ -21,33 +21,34 @@ #pragma once -#include "MessageBroker.h" +#include <boost/noncopyable.hpp> +#include <boost/enable_shared_from_this.hpp> namespace OrthancStone { + class MessageBroker; // TODO - Remove + class IObserver : public boost::noncopyable { - private: - MessageBroker& broker_; - // the following is a UUID that is used to disambiguate different observers - // that may have the same address - char fingerprint_[37]; + public: + IObserver() + { + } - public: - IObserver(MessageBroker& broker); - - virtual ~IObserver(); - - const char* GetFingerprint() const + // TODO - Remove + IObserver(MessageBroker& broker) { - return fingerprint_; } - bool DoesFingerprintLookGood() const; - - MessageBroker& GetBroker() const + virtual ~IObserver() { - return broker_; } }; + + template <typename T> + class ObserverBase : + public IObserver, + public boost::enable_shared_from_this<T> + { + }; }