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 }