diff Framework/Messages/MessageBroker.h @ 403:99e31898910e

IObservable.cpp
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sun, 11 Nov 2018 12:13:31 +0100
parents 3897f9f28cfa
children b70e9be013e4
line wrap: on
line diff
--- a/Framework/Messages/MessageBroker.h	Sat Nov 10 12:34:45 2018 +0100
+++ b/Framework/Messages/MessageBroker.h	Sun Nov 11 12:13:31 2018 +0100
@@ -22,12 +22,12 @@
 #pragma once
 
 #include "boost/noncopyable.hpp"
+
 #include <set>
 
 namespace OrthancStone
 {
   class IObserver;
-  class IObservable;
 
   /*
    * This is a central message broker.  It keeps track of all observers and knows
@@ -36,25 +36,23 @@
    */
   class MessageBroker : public boost::noncopyable
   {
-
-    std::set<IObserver*> activeObservers_;  // the list of observers that are currently alive (that have not been deleted)
+  private:
+    std::set<const IObserver*> activeObservers_;  // the list of observers that are currently alive (that have not been deleted)
 
   public:
-
-    void Register(IObserver& observer)
+    void Register(const IObserver& observer)
     {
       activeObservers_.insert(&observer);
     }
 
-    void Unregister(IObserver& observer)
+    void Unregister(const IObserver& observer)
     {
       activeObservers_.erase(&observer);
     }
 
-    bool IsActive(IObserver* observer)
+    bool IsActive(const IObserver& observer)
     {
-      return activeObservers_.find(observer) != activeObservers_.end();
+      return activeObservers_.find(&observer) != activeObservers_.end();
     }
   };
-
 }