Mercurial > hg > orthanc-stone
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(); } }; - }