Mercurial > hg > orthanc-stone
comparison Framework/Messages/IObservable.h @ 393:e7a494bdd956
removed Messages/MessageType.h
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 09 Nov 2018 18:30:30 +0100 |
parents | b66d13708f40 |
children | 99e31898910e |
comparison
equal
deleted
inserted
replaced
392:d87fe075d31b | 393:e7a494bdd956 |
---|---|
19 **/ | 19 **/ |
20 | 20 |
21 | 21 |
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "../StoneEnumerations.h" | |
25 #include "ICallable.h" | |
26 #include "IObserver.h" | |
27 #include "MessageBroker.h" | |
28 #include "MessageForwarder.h" | |
29 | |
24 #include <set> | 30 #include <set> |
25 #include <assert.h> | |
26 #include <algorithm> | |
27 #include <iostream> | |
28 #include <map> | 31 #include <map> |
29 | 32 |
30 | 33 namespace OrthancStone |
31 #include "MessageBroker.h" | 34 { |
32 #include "MessageType.h" | |
33 #include "ICallable.h" | |
34 #include "IObserver.h" | |
35 #include "MessageForwarder.h" | |
36 | |
37 namespace OrthancStone { | |
38 | |
39 | |
40 class IObservable : public boost::noncopyable | 35 class IObservable : public boost::noncopyable |
41 { | 36 { |
42 protected: | 37 private: |
43 MessageBroker& broker_; | 38 typedef std::map<int, std::set<ICallable*> > Callables; |
39 typedef std::set<IMessageForwarder*> Forwarders; | |
44 | 40 |
45 typedef std::map<int, std::set<ICallable*> > Callables; | 41 MessageBroker& broker_; |
46 Callables callables_; | 42 Callables callables_; |
47 | 43 Forwarders forwarders_; |
48 typedef std::set<IMessageForwarder*> Forwarders; | |
49 Forwarders forwarders_; | |
50 | 44 |
51 public: | 45 public: |
52 | 46 IObservable(MessageBroker& broker) : |
53 IObservable(MessageBroker& broker) | 47 broker_(broker) |
54 : broker_(broker) | |
55 { | 48 { |
56 } | 49 } |
50 | |
57 virtual ~IObservable() | 51 virtual ~IObservable() |
58 { | 52 { |
59 // delete all callables (this will also unregister them from the broker) | 53 // delete all callables (this will also unregister them from the broker) |
60 for (Callables::const_iterator it = callables_.begin(); | 54 for (Callables::const_iterator it = callables_.begin(); |
61 it != callables_.end(); ++it) | 55 it != callables_.end(); ++it) |
103 void RegisterForwarder(IMessageForwarder* forwarder) | 97 void RegisterForwarder(IMessageForwarder* forwarder) |
104 { | 98 { |
105 forwarders_.insert(forwarder); | 99 forwarders_.insert(forwarder); |
106 } | 100 } |
107 | 101 |
102 MessageBroker& GetBroker() const | |
103 { | |
104 return broker_; | |
105 } | |
108 }; | 106 }; |
109 | |
110 } | 107 } |