Mercurial > hg > orthanc-stone
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 |