Mercurial > hg > orthanc-stone
diff Framework/Messages/IObservable.cpp @ 1067:05b2e71ed145 broker
removed MessageForwarder, unit tests are ok
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 15 Oct 2019 18:11:40 +0200 |
parents | 9d42f89b8c3c |
children | 81b29bc7c3d4 |
line wrap: on
line diff
--- a/Framework/Messages/IObservable.cpp Tue Oct 15 15:39:39 2019 +0200 +++ b/Framework/Messages/IObservable.cpp Tue Oct 15 18:11:40 2019 +0200 @@ -40,19 +40,6 @@ delete *it2; } } - - // unregister the forwarders but don't delete them (they'll be - // deleted by the observable they are observing as any other - // callable) - for (Forwarders::iterator it = forwarders_.begin(); - it != forwarders_.end(); ++it) - { - IMessageForwarder* fw = *it; - - // TODO - What to do with forwarders? - - //broker_.Unregister(dynamic_cast<IObserver&>(*fw)); - } } @@ -67,33 +54,6 @@ callables_[id].insert(callable); } - void IObservable::Unregister(IObserver *observer) - { - LOG(TRACE) << "IObservable::Unregister for IObserver at addr: " - << std::hex << observer << std::dec; - // delete all callables from this observer - for (Callables::iterator itCallableSet = callables_.begin(); - itCallableSet != callables_.end(); ++itCallableSet) - { - for (std::set<ICallable*>::const_iterator - itCallable = itCallableSet->second.begin(); itCallable != itCallableSet->second.end(); ) - { - boost::shared_ptr<IObserver> shared((*itCallable)->GetObserver()); - - if (shared && - shared.get() == observer) - { - LOG(TRACE) << " ** IObservable::Unregister : deleting callable: " - << std::hex << (*itCallable) << std::dec; - delete *itCallable; - itCallableSet->second.erase(itCallable++); - } - else - ++itCallable; - } - } - } - void IObservable::EmitMessageInternal(const IObserver* receiver, const IMessage& message) { @@ -108,7 +68,7 @@ { assert(*it != NULL); - boost::shared_ptr<IObserver> observer((*it)->GetObserver()); + boost::shared_ptr<IObserver> observer((*it)->GetObserver().lock()); if (observer) { @@ -141,14 +101,4 @@ << std::hex << &observer << std::dec; EmitMessageInternal(&observer, message); } - - void IObservable::RegisterForwarder(IMessageForwarder* forwarder) - { - if (forwarder == NULL) - { - throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); - } - - forwarders_.insert(forwarder); - } }