Mercurial > hg > orthanc-stone
diff Platforms/Wasm/WasmWebService.h @ 253:8ff70c04c6df am-2
IObservable/IObserver now working in WASM too
author | am@osimis.io |
---|---|
date | Tue, 03 Jul 2018 10:48:47 +0200 |
parents | ddbb339ed4cf |
children | 65562a28fe05 |
line wrap: on
line diff
--- a/Platforms/Wasm/WasmWebService.h Tue Jul 03 10:26:56 2018 +0200 +++ b/Platforms/Wasm/WasmWebService.h Tue Jul 03 10:48:47 2018 +0200 @@ -1,28 +1,40 @@ #pragma once #include <Framework/Toolbox/IWebService.h> +#include <Core/OrthancException.h> namespace OrthancStone { class WasmWebService : public IWebService { private: - std::string base_; + std::string baseUri_; + static MessageBroker* broker_; // Private constructor => Singleton design pattern - WasmWebService() : - base_("../../") // note: this is configurable from the JS code by calling WasmWebService_SetBaseUrl + WasmWebService(MessageBroker& broker) : + IWebService(broker), + baseUri_("../../") // note: this is configurable from the JS code by calling WasmWebService_SetBaseUri { } public: static WasmWebService& GetInstance() { - static WasmWebService instance; + if (broker_ == NULL) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); + } + static WasmWebService instance(*broker_); return instance; } - void SetBaseUrl(const std::string base); + static void SetBroker(MessageBroker& broker) + { + broker_ = &broker; + } + + void SetBaseUri(const std::string baseUri); virtual void ScheduleGetRequest(ICallback& callback, const std::string& uri,