Mercurial > hg > orthanc-stone
comparison Framework/Messages/IObservable.cpp @ 428:751fb354149e am-vsol-upgrade
ability to change the scene of the RadiographyWidget
author | am@osimis.io |
---|---|
date | Wed, 28 Nov 2018 10:44:28 +0100 |
parents | 99e31898910e |
children | a750f11892ec |
comparison
equal
deleted
inserted
replaced
426:660fe6f6bf4a | 428:751fb354149e |
---|---|
62 MessageType messageType = callable->GetMessageType(); | 62 MessageType messageType = callable->GetMessageType(); |
63 | 63 |
64 callables_[messageType].insert(callable); | 64 callables_[messageType].insert(callable); |
65 } | 65 } |
66 | 66 |
67 void IObservable::Unregister(IObserver *observer) | |
68 { | |
69 // delete all callables from this observer | |
70 for (Callables::iterator itCallableSet = callables_.begin(); | |
71 itCallableSet != callables_.end(); ++itCallableSet) | |
72 { | |
73 for (std::set<ICallable*>::const_iterator | |
74 itCallable = itCallableSet->second.begin(); itCallable != itCallableSet->second.end(); ) | |
75 { | |
76 if ((*itCallable)->GetObserver() == observer) | |
77 { | |
78 delete *itCallable; | |
79 itCallableSet->second.erase(itCallable++); | |
80 } | |
81 else | |
82 ++itCallable; | |
83 } | |
84 } | |
85 } | |
67 | 86 |
68 void IObservable::EmitMessage(const IMessage& message) | 87 void IObservable::EmitMessage(const IMessage& message) |
69 { | 88 { |
70 Callables::const_iterator found = callables_.find(message.GetType()); | 89 Callables::const_iterator found = callables_.find(message.GetType()); |
71 | 90 |