Mercurial > hg > orthanc-stone
comparison Framework/Messages/IObservable.cpp @ 623:42dadae61fa9
renamed IObservable::EmitMessage() as BroadcastMessage()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 07 May 2019 14:16:08 +0200 |
parents | a750f11892ec |
children | f0008c55e5f7 |
comparison
equal
deleted
inserted
replaced
622:8a3a25f2d42c | 623:42dadae61fa9 |
---|---|
82 ++itCallable; | 82 ++itCallable; |
83 } | 83 } |
84 } | 84 } |
85 } | 85 } |
86 | 86 |
87 void IObservable::EmitMessage(const IMessage& message) | 87 void IObservable::EmitMessageInternal(const IObserver* receiver, |
88 const IMessage& message) | |
88 { | 89 { |
89 Callables::const_iterator found = callables_.find(message.GetType()); | 90 Callables::const_iterator found = callables_.find(message.GetType()); |
90 | 91 |
91 if (found != callables_.end()) | 92 if (found != callables_.end()) |
92 { | 93 { |
93 for (std::set<ICallable*>::const_iterator | 94 for (std::set<ICallable*>::const_iterator |
94 it = found->second.begin(); it != found->second.end(); ++it) | 95 it = found->second.begin(); it != found->second.end(); ++it) |
95 { | 96 { |
96 assert(*it != NULL); | 97 assert(*it != NULL); |
97 if (broker_.IsActive(*(*it)->GetObserver())) | 98 |
99 const IObserver* observer = (*it)->GetObserver(); | |
100 if (broker_.IsActive(*observer)) | |
98 { | 101 { |
99 (*it)->Apply(message); | 102 if (receiver == NULL || // Are we broadcasting? |
103 observer == receiver) // Not broadcasting, but this is the receiver | |
104 { | |
105 (*it)->Apply(message); | |
106 } | |
100 } | 107 } |
101 } | 108 } |
102 } | 109 } |
110 } | |
111 | |
112 | |
113 void IObservable::BroadcastMessage(const IMessage& message) | |
114 { | |
115 EmitMessageInternal(NULL, message); | |
116 } | |
117 | |
118 | |
119 void IObservable::EmitMessage(const IObserver& observer, | |
120 const IMessage& message) | |
121 { | |
122 EmitMessageInternal(&observer, message); | |
103 } | 123 } |
104 | 124 |
105 | 125 |
106 void IObservable::RegisterForwarder(IMessageForwarder* forwarder) | 126 void IObservable::RegisterForwarder(IMessageForwarder* forwarder) |
107 { | 127 { |