comparison Resources/Graveyard/Deprecated/Platforms/Wasm/WasmWebService.h @ 1503:553084468225

moving /Deprecated/ to /Resources/Graveyard/Deprecated/
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 30 Jun 2020 11:38:13 +0200
parents Deprecated/Platforms/Wasm/WasmWebService.h@828a9b4ee1b7
children
comparison
equal deleted inserted replaced
1502:e5729dab3f67 1503:553084468225
1 /**
2 * Stone of Orthanc
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
6 *
7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU Affero General Public License
9 * as published by the Free Software Foundation, either version 3 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 **/
20
21
22 #pragma once
23
24 #include "../../Framework/Deprecated/Toolbox/BaseWebService.h"
25 #include <Core/OrthancException.h>
26
27 namespace Deprecated
28 {
29 class WasmWebService : public BaseWebService
30 {
31 private:
32 static OrthancStone::MessageBroker *broker_;
33
34 // Private constructor => Singleton design pattern
35 WasmWebService(OrthancStone::MessageBroker &broker) : BaseWebService(broker)
36 {
37 }
38
39 public:
40 static WasmWebService &GetInstance()
41 {
42 if (broker_ == NULL)
43 {
44 printf("WasmWebService::GetInstance(): broker not initialized\n");
45 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
46 }
47 static WasmWebService instance(*broker_);
48 return instance;
49 }
50
51 static void SetBroker(OrthancStone::MessageBroker &broker)
52 {
53 broker_ = &broker;
54 }
55
56 virtual void PostAsync(const std::string &uri,
57 const HttpHeaders &headers,
58 const std::string &body,
59 Orthanc::IDynamicObject *payload,
60 OrthancStone::MessageHandler<IWebService::HttpRequestSuccessMessage> *successCallable,
61 OrthancStone::MessageHandler<IWebService::HttpRequestErrorMessage> *failureCallable = NULL,
62 unsigned int timeoutInSeconds = 60);
63
64 virtual void DeleteAsync(const std::string &uri,
65 const HttpHeaders &headers,
66 Orthanc::IDynamicObject *payload,
67 OrthancStone::MessageHandler<IWebService::HttpRequestSuccessMessage> *successCallable,
68 OrthancStone::MessageHandler<IWebService::HttpRequestErrorMessage> *failureCallable = NULL,
69 unsigned int timeoutInSeconds = 60);
70
71 protected:
72 virtual void GetAsyncInternal(const std::string &uri,
73 const HttpHeaders &headers,
74 Orthanc::IDynamicObject *payload,
75 OrthancStone::MessageHandler<IWebService::HttpRequestSuccessMessage> *successCallable,
76 OrthancStone::MessageHandler<IWebService::HttpRequestErrorMessage> *failureCallable = NULL,
77 unsigned int timeoutInSeconds = 60);
78
79 virtual void NotifyHttpSuccessLater(boost::shared_ptr<BaseWebService::CachedHttpRequestSuccessMessage> cachedHttpMessage,
80 Orthanc::IDynamicObject *payload, // takes ownership
81 OrthancStone::MessageHandler<IWebService::HttpRequestSuccessMessage> *successCallback);
82 };
83 } // namespace Deprecated