Mercurial > hg > orthanc-stone
diff Platforms/Generic/WebServiceCommandBase.cpp @ 300:b4abaeb783b1 am-callable-and-promise
messaging refactoring almost complete: works fine in native
author | am@osimis.io |
---|---|
date | Tue, 18 Sep 2018 15:23:21 +0200 |
parents | 3897f9f28cfa |
children | 547e1cf7aa7b |
line wrap: on
line diff
--- a/Platforms/Generic/WebServiceCommandBase.cpp Fri Sep 14 16:44:01 2018 +0200 +++ b/Platforms/Generic/WebServiceCommandBase.cpp Tue Sep 18 15:23:21 2018 +0200 @@ -26,45 +26,8 @@ namespace OrthancStone { WebServiceCommandBase::WebServiceCommandBase(MessageBroker& broker, - IWebService::ICallback& callback, - const Orthanc::WebServiceParameters& parameters, - const std::string& uri, - const IWebService::Headers& headers, - Orthanc::IDynamicObject* payload /* takes ownership */, - NativeStoneApplicationContext& context) : - IObservable(broker), - callback_(callback), - parameters_(parameters), - uri_(uri), - headers_(headers), - payload_(payload), - context_(context) - { - DeclareEmittableMessage(MessageType_HttpRequestError); - DeclareEmittableMessage(MessageType_HttpRequestSuccess); - // TODO ? RegisterObserver(callback); - } - - - void WebServiceCommandBase::Commit() - { - NativeStoneApplicationContext::GlobalMutexLocker lock(context_); // we want to make sure that, i.e, the UpdateThread is not triggered while we are updating the "model" with the result of a WebServiceCommand - - if (success_) - { - IWebService::ICallback::HttpRequestSuccessMessage message(uri_, answer_.c_str(), answer_.size(), payload_.release()); - EmitMessage(message); - } - else - { - IWebService::ICallback::HttpRequestErrorMessage message(uri_, payload_.release()); - EmitMessage(message); - } - } - - NewWebServiceCommandBase::NewWebServiceCommandBase(MessageBroker& broker, - MessageHandler<IWebService::NewHttpRequestSuccessMessage>* successCallback, - MessageHandler<IWebService::NewHttpRequestErrorMessage>* failureCallback, + MessageHandler<IWebService::NewHttpRequestSuccessMessage>* successCallback, + MessageHandler<IWebService::NewHttpRequestErrorMessage>* failureCallback, const Orthanc::WebServiceParameters& parameters, const std::string& uri, const IWebService::Headers& headers, @@ -82,7 +45,7 @@ } - void NewWebServiceCommandBase::Commit() + void WebServiceCommandBase::Commit() { NativeStoneApplicationContext::GlobalMutexLocker lock(context_); // we want to make sure that, i.e, the UpdateThread is not triggered while we are updating the "model" with the result of a WebServiceCommand