comparison Framework/Messages/IObserver.h @ 300:b4abaeb783b1 am-callable-and-promise

messaging refactoring almost complete: works fine in native
author am@osimis.io
date Tue, 18 Sep 2018 15:23:21 +0200
parents 3897f9f28cfa
children e7a494bdd956
comparison
equal deleted inserted replaced
299:3897f9f28cfa 300:b4abaeb783b1
32 32
33 class IObserver : public boost::noncopyable 33 class IObserver : public boost::noncopyable
34 { 34 {
35 protected: 35 protected:
36 MessageBroker& broker_; 36 MessageBroker& broker_;
37 std::set<MessageType> handledMessages_;
38 std::set<MessageType> ignoredMessages_;
39 37
40 public: 38 public:
41 IObserver(MessageBroker& broker) 39 IObserver(MessageBroker& broker)
42 : broker_(broker) 40 : broker_(broker)
43 { 41 {
46 44
47 virtual ~IObserver() 45 virtual ~IObserver()
48 { 46 {
49 broker_.Unregister(*this); 47 broker_.Unregister(*this);
50 } 48 }
51
52 // void HandleMessage_(IObservable &from, const IMessage &message)
53 // {
54 // assert(handledMessages_.find(message.GetType()) != handledMessages_.end()); // please declare the messages that you're handling
55
56 // HandleMessage(from, message);
57 // }
58
59 // virtual void HandleMessage(IObservable& from, const IMessage& message) = 0;
60
61
62 // const std::set<MessageType>& GetHandledMessages() const
63 // {
64 // return handledMessages_;
65 // }
66
67 // const std::set<MessageType>& GetIgnoredMessages() const
68 // {
69 // return ignoredMessages_;
70 // }
71
72 // protected:
73
74 // // when you connect an IObserver to an IObservable, the observer must handle all observable messages (this is checked during the registration)
75 // // so, all messages that may be emitted by the observable must be declared "handled" or "ignored" by the observer
76 // void DeclareHandledMessage(MessageType messageType)
77 // {
78 // handledMessages_.insert(messageType);
79 // }
80
81 // void DeclareIgnoredMessage(MessageType messageType)
82 // {
83 // ignoredMessages_.insert(messageType);
84 // }
85
86 }; 49 };
87 50
88 } 51 }