Mercurial > hg > orthanc-stone
diff Framework/Messages/Promise.h @ 403:99e31898910e
IObservable.cpp
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sun, 11 Nov 2018 12:13:31 +0100 |
parents | 4a79193ffb58 |
children | b70e9be013e4 |
line wrap: on
line diff
--- a/Framework/Messages/Promise.h Sat Nov 10 12:34:45 2018 +0100 +++ b/Framework/Messages/Promise.h Sun Nov 11 12:13:31 2018 +0100 @@ -47,7 +47,8 @@ void Success(const IMessage& message) { // check the target is still alive in the broker - if (broker_.IsActive(successCallable_->GetObserver())) + if (successCallable_.get() != NULL && + broker_.IsActive(*successCallable_->GetObserver())) { successCallable_->Apply(message); } @@ -56,13 +57,14 @@ void Failure(const IMessage& message) { // check the target is still alive in the broker - if (broker_.IsActive(failureCallable_->GetObserver())) + if (failureCallable_.get() != NULL && + broker_.IsActive(*failureCallable_->GetObserver())) { failureCallable_->Apply(message); } } - Promise& Then(ICallable* successCallable) + Promise& Then(ICallable* successCallable) // Takes ownership { if (successCallable_.get() != NULL) { @@ -72,7 +74,7 @@ return *this; } - Promise& Else(ICallable* failureCallable) + Promise& Else(ICallable* failureCallable) // Takes ownership { if (failureCallable_.get() != NULL) { @@ -81,8 +83,5 @@ failureCallable_.reset(failureCallable); return *this; } - }; - - }