Mercurial > hg > orthanc-stone
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 |