Mercurial > hg > orthanc-stone
comparison Framework/Messages/IObserver.h @ 1059:e713f1a99861 broker
replacing MessageBroker by weak_ptr
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 11 Oct 2019 17:08:34 +0200 |
parents | f6be9412e42a |
children | e146743f6cdc |
comparison
equal
deleted
inserted
replaced
1058:a36c47487a70 | 1059:e713f1a99861 |
---|---|
19 **/ | 19 **/ |
20 | 20 |
21 | 21 |
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "MessageBroker.h" | 24 #include <boost/noncopyable.hpp> |
25 #include <boost/enable_shared_from_this.hpp> | |
25 | 26 |
26 namespace OrthancStone | 27 namespace OrthancStone |
27 { | 28 { |
29 class MessageBroker; // TODO - Remove | |
30 | |
28 class IObserver : public boost::noncopyable | 31 class IObserver : public boost::noncopyable |
29 { | 32 { |
30 private: | |
31 MessageBroker& broker_; | |
32 // the following is a UUID that is used to disambiguate different observers | |
33 // that may have the same address | |
34 char fingerprint_[37]; | |
35 | |
36 public: | 33 public: |
37 IObserver(MessageBroker& broker); | 34 IObserver() |
38 | |
39 virtual ~IObserver(); | |
40 | |
41 const char* GetFingerprint() const | |
42 { | 35 { |
43 return fingerprint_; | |
44 } | 36 } |
45 | 37 |
46 bool DoesFingerprintLookGood() const; | 38 // TODO - Remove |
39 IObserver(MessageBroker& broker) | |
40 { | |
41 } | |
47 | 42 |
48 MessageBroker& GetBroker() const | 43 virtual ~IObserver() |
49 { | 44 { |
50 return broker_; | |
51 } | 45 } |
52 }; | 46 }; |
47 | |
48 template <typename T> | |
49 class ObserverBase : | |
50 public IObserver, | |
51 public boost::enable_shared_from_this<T> | |
52 { | |
53 }; | |
53 } | 54 } |