Mercurial > hg > orthanc-stone
comparison Framework/Messages/IObservable.h @ 1065:9d42f89b8c3c broker
improved readability
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 15 Oct 2019 14:08:15 +0200 |
parents | af4b9cba905f |
children | 05b2e71ed145 |
comparison
equal
deleted
inserted
replaced
1064:af4b9cba905f | 1065:9d42f89b8c3c |
---|---|
42 Forwarders forwarders_; | 42 Forwarders forwarders_; |
43 | 43 |
44 void EmitMessageInternal(const IObserver* receiver, | 44 void EmitMessageInternal(const IObserver* receiver, |
45 const IMessage& message); | 45 const IMessage& message); |
46 | 46 |
47 // Takes ownsership of the callable | |
48 void RegisterObserverCallback(ICallable* callable); | |
49 | |
50 public: | 47 public: |
51 virtual ~IObservable(); | 48 virtual ~IObservable(); |
49 | |
50 // Takes ownsership of the callable | |
51 void RegisterCallable(ICallable* callable); | |
52 | 52 |
53 // TODO - Remove this? | 53 // TODO - Remove this? |
54 void Unregister(IObserver* observer); | 54 void Unregister(IObserver* observer); |
55 | 55 |
56 void BroadcastMessage(const IMessage& message); | 56 void BroadcastMessage(const IMessage& message); |
58 void EmitMessage(const IObserver& observer, | 58 void EmitMessage(const IObserver& observer, |
59 const IMessage& message); | 59 const IMessage& message); |
60 | 60 |
61 // Takes ownsership | 61 // Takes ownsership |
62 void RegisterForwarder(IMessageForwarder* forwarder); | 62 void RegisterForwarder(IMessageForwarder* forwarder); |
63 | |
64 template<typename TObserver, | |
65 typename TMessage> | |
66 void RegisterObserver(TObserver& observer, | |
67 void (TObserver::* MemberMethod) (const TMessage&)) | |
68 { | |
69 RegisterObserverCallback(new Callable<TObserver, TMessage>(observer.GetSharedObserver(), MemberMethod)); | |
70 } | |
71 }; | 63 }; |
72 } | 64 } |