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>    
+  {
+  };
 }