Mercurial > hg > orthanc-stone
comparison Framework/Messages/IObservable.h @ 1067:05b2e71ed145 broker
removed MessageForwarder, unit tests are ok
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 15 Oct 2019 18:11:40 +0200 |
parents | 9d42f89b8c3c |
children | 81b29bc7c3d4 |
comparison
equal
deleted
inserted
replaced
1066:b537002f83a9 | 1067:05b2e71ed145 |
---|---|
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "../StoneEnumerations.h" | 24 #include "../StoneEnumerations.h" |
25 #include "ICallable.h" | 25 #include "ICallable.h" |
26 #include "IObserver.h" | 26 #include "IObserver.h" |
27 #include "MessageForwarder.h" | |
28 | 27 |
29 #include <set> | 28 #include <set> |
30 #include <map> | 29 #include <map> |
31 | 30 |
32 namespace OrthancStone | 31 namespace OrthancStone |
34 class IObservable : public boost::noncopyable | 33 class IObservable : public boost::noncopyable |
35 { | 34 { |
36 private: | 35 private: |
37 typedef std::map<MessageIdentifier, std::set<ICallable*> > Callables; | 36 typedef std::map<MessageIdentifier, std::set<ICallable*> > Callables; |
38 | 37 |
39 typedef std::set<IMessageForwarder*> Forwarders; | |
40 | |
41 Callables callables_; | 38 Callables callables_; |
42 Forwarders forwarders_; | |
43 | 39 |
44 void EmitMessageInternal(const IObserver* receiver, | 40 void EmitMessageInternal(const IObserver* receiver, |
45 const IMessage& message); | 41 const IMessage& message); |
46 | 42 |
47 public: | 43 public: |
48 virtual ~IObservable(); | 44 virtual ~IObservable(); |
49 | 45 |
50 // Takes ownsership of the callable | 46 // Takes ownsership of the callable |
51 void RegisterCallable(ICallable* callable); | 47 void RegisterCallable(ICallable* callable); |
52 | 48 |
53 // TODO - Remove this? | |
54 void Unregister(IObserver* observer); | |
55 | |
56 void BroadcastMessage(const IMessage& message); | 49 void BroadcastMessage(const IMessage& message); |
57 | 50 |
58 void EmitMessage(const IObserver& observer, | 51 void EmitMessage(const IObserver& observer, |
59 const IMessage& message); | 52 const IMessage& message); |
60 | |
61 // Takes ownsership | |
62 void RegisterForwarder(IMessageForwarder* forwarder); | |
63 }; | 53 }; |
64 } | 54 } |