Mercurial > hg > orthanc-stone
view Platforms/Wasm/WasmWebService.h @ 337:c4d4213f095c am-2
cont
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 18 Oct 2018 20:07:09 +0200 |
parents | aad37d0b6407 |
children | aee3d7941c9b |
line wrap: on
line source
#pragma once #include <Framework/Toolbox/IWebService.h> #include <Core/OrthancException.h> namespace OrthancStone { class WasmWebService : public IWebService { private: std::string baseUri_; static MessageBroker* broker_; // Private constructor => Singleton design pattern WasmWebService(MessageBroker& broker) : IWebService(broker), baseUri_("../../") // note: this is configurable from the JS code by calling WasmWebService_SetBaseUri { } public: static WasmWebService& GetInstance() { if (broker_ == NULL) { printf("WasmWebService::GetInstance(): broker not initialized\n"); throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); } static WasmWebService instance(*broker_); return instance; } static void SetBroker(MessageBroker& broker) { broker_ = &broker; } void SetBaseUri(const std::string baseUri); virtual void GetAsync(const std::string& uri, const Headers& headers, Orthanc::IDynamicObject* payload, MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable = NULL, unsigned int timeoutInSeconds = 60); virtual void PostAsync(const std::string& uri, const Headers& headers, const std::string& body, Orthanc::IDynamicObject* payload, MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable = NULL, unsigned int timeoutInSeconds = 60); virtual void DeleteAsync(const std::string& uri, const Headers& headers, Orthanc::IDynamicObject* payload, MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable = NULL, unsigned int timeoutInSeconds = 60); virtual void Start() { } virtual void Stop() { } }; }