comparison Framework/Messages/ICallable.h @ 1064:af4b9cba905f broker

simplify how observers are regsitered, and how callables are created
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 15 Oct 2019 13:46:01 +0200
parents e713f1a99861
children 008dbc4ceb62
comparison
equal deleted inserted replaced
1063:3e8f59cefec6 1064:af4b9cba905f
33 33
34 namespace OrthancStone 34 namespace OrthancStone
35 { 35 {
36 // This is referencing an object and member function that can be notified 36 // This is referencing an object and member function that can be notified
37 // by an IObservable. The object must derive from IO 37 // by an IObservable. The object must derive from IO
38 // The member functions must be of type "void Function(const IMessage& message)" or reference a derived class of IMessage 38 // The member functions must be of type "void Method(const IMessage& message)" or reference a derived class of IMessage
39 class ICallable : public boost::noncopyable 39 class ICallable : public boost::noncopyable
40 { 40 {
41 public: 41 public:
42 virtual ~ICallable() 42 virtual ~ICallable()
43 { 43 {
62 template <typename TObserver, 62 template <typename TObserver,
63 typename TMessage> 63 typename TMessage>
64 class Callable : public MessageHandler<TMessage> 64 class Callable : public MessageHandler<TMessage>
65 { 65 {
66 private: 66 private:
67 typedef void (TObserver::* MemberFunction) (const TMessage&); 67 typedef void (TObserver::* MemberMethod) (const TMessage&);
68 68
69 boost::weak_ptr<IObserver> observer_; 69 boost::weak_ptr<IObserver> observer_;
70 MemberFunction function_; 70 MemberMethod function_;
71 71
72 public: 72 public:
73 Callable(boost::shared_ptr<TObserver> observer, 73 Callable(boost::shared_ptr<TObserver> observer,
74 MemberFunction function) : 74 MemberMethod function) :
75 observer_(observer), 75 observer_(observer),
76 function_(function) 76 function_(function)
77 { 77 {
78 } 78 }
79 79