comparison Framework/Messages/MessageForwarder.h @ 317:b66d13708f40 am-2

cleanup
author am@osimis.io
date Fri, 05 Oct 2018 11:57:36 +0200
parents 4a79193ffb58
children 751fb354149e b70e9be013e4
comparison
equal deleted inserted replaced
315:aad37d0b6407 317:b66d13708f40
29 namespace OrthancStone 29 namespace OrthancStone
30 { 30 {
31 31
32 class IObservable; 32 class IObservable;
33 33
34 class IMessageForwarder : public boost::noncopyable 34 class IMessageForwarder : public IObserver
35 { 35 {
36 IObservable& emitter_; 36 IObservable& emitter_;
37 public: 37 public:
38 IMessageForwarder(IObservable& emitter) 38 IMessageForwarder(MessageBroker& broker, IObservable& emitter)
39 : emitter_(emitter) 39 : IObserver(broker),
40 emitter_(emitter)
40 {} 41 {}
41 virtual ~IMessageForwarder() {} 42 virtual ~IMessageForwarder() {}
42 43
43 protected: 44 protected:
44 void ForwardMessageInternal(const IMessage& message); 45 void ForwardMessageInternal(const IMessage& message);
62 * 63 *
63 * in C: 64 * in C:
64 * B.RegisterObserverCallback(new Callable<C, A:MessageTyper>(*this, &B::MyCallback)) // where this is C 65 * B.RegisterObserverCallback(new Callable<C, A:MessageTyper>(*this, &B::MyCallback)) // where this is C
65 */ 66 */
66 template<typename TMessage> 67 template<typename TMessage>
67 class MessageForwarder : public IMessageForwarder, public IObserver, public Callable<MessageForwarder<TMessage>, TMessage> 68 class MessageForwarder : public IMessageForwarder, public Callable<MessageForwarder<TMessage>, TMessage>
68 { 69 {
69 public: 70 public:
70 MessageForwarder(MessageBroker& broker, 71 MessageForwarder(MessageBroker& broker,
71 IObservable& emitter // the object that will emit the messages to forward 72 IObservable& emitter // the object that will emit the messages to forward
72 ) 73 )
73 : IMessageForwarder(emitter), 74 : IMessageForwarder(broker, emitter),
74 IObserver(broker),
75 Callable<MessageForwarder<TMessage>, TMessage>(*this, &MessageForwarder::ForwardMessage) 75 Callable<MessageForwarder<TMessage>, TMessage>(*this, &MessageForwarder::ForwardMessage)
76 { 76 {
77 RegisterForwarderInEmitter(); 77 RegisterForwarderInEmitter();
78 } 78 }
79 79