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 }