comparison Framework/Messages/LockingEmitter.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 6d15261f9c99
children 229ea1389845
comparison
equal deleted inserted replaced
1058:a36c47487a70 1059:e713f1a99861
37 * application-wide mutex. 37 * application-wide mutex.
38 */ 38 */
39 class LockingEmitter : public IMessageEmitter 39 class LockingEmitter : public IMessageEmitter
40 { 40 {
41 private: 41 private:
42 boost::shared_mutex mutex_; 42 boost::shared_mutex mutex_;
43 MessageBroker broker_;
44 IObservable oracleObservable_; 43 IObservable oracleObservable_;
45 44
46 public: 45 public:
47 LockingEmitter() :
48 oracleObservable_(broker_)
49 {
50 }
51
52 MessageBroker& GetBroker()
53 {
54 return broker_;
55 }
56
57 virtual void EmitMessage(const IObserver& observer, 46 virtual void EmitMessage(const IObserver& observer,
58 const IMessage& message) ORTHANC_OVERRIDE 47 const IMessage& message) ORTHANC_OVERRIDE
59 { 48 {
60 try 49 try
61 { 50 {
95 that_(that), 84 that_(that),
96 lock_(that.mutex_) 85 lock_(that.mutex_)
97 { 86 {
98 } 87 }
99 88
100 MessageBroker& GetBroker()
101 {
102 return that_.broker_;
103 }
104
105 IObservable& GetOracleObservable() 89 IObservable& GetOracleObservable()
106 { 90 {
107 return that_.oracleObservable_; 91 return that_.oracleObservable_;
108 } 92 }
109 }; 93 };