Mercurial > hg > orthanc-stone
comparison Platforms/Wasm/WasmWebService.cpp @ 417:aee3d7941c9b
preparing to load images using DICOMweb
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 15 Nov 2018 17:28:15 +0100 |
parents | aad37d0b6407 |
children | c23df8b3433b |
comparison
equal
deleted
inserted
replaced
415:c0589c3173fd | 417:aee3d7941c9b |
---|---|
47 | 47 |
48 void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifySuccess(void* successCallable, | 48 void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifySuccess(void* successCallable, |
49 const char* uri, | 49 const char* uri, |
50 const void* body, | 50 const void* body, |
51 size_t bodySize, | 51 size_t bodySize, |
52 const char* answerHeaders, | |
52 void* payload) | 53 void* payload) |
53 { | 54 { |
54 if (successCallable == NULL) | 55 if (successCallable == NULL) |
55 { | 56 { |
56 throw; | 57 throw; |
57 } | 58 } |
58 else | 59 else |
59 { | 60 { |
61 OrthancStone::IWebService::HttpHeaders headers; | |
62 | |
63 // TODO - Parse "answerHeaders" | |
64 printf("[%s]\n", answerHeaders); | |
65 | |
60 reinterpret_cast<OrthancStone::MessageHandler<OrthancStone::IWebService::HttpRequestSuccessMessage>*>(successCallable)-> | 66 reinterpret_cast<OrthancStone::MessageHandler<OrthancStone::IWebService::HttpRequestSuccessMessage>*>(successCallable)-> |
61 Apply(OrthancStone::IWebService::HttpRequestSuccessMessage(uri, body, bodySize, reinterpret_cast<Orthanc::IDynamicObject*>(payload))); | 67 Apply(OrthancStone::IWebService::HttpRequestSuccessMessage(uri, body, bodySize, headers, |
62 } | 68 reinterpret_cast<Orthanc::IDynamicObject*>(payload))); |
69 } | |
63 } | 70 } |
64 | 71 |
65 void EMSCRIPTEN_KEEPALIVE WasmWebService_SetBaseUri(const char* baseUri) | 72 void EMSCRIPTEN_KEEPALIVE WasmWebService_SetBaseUri(const char* baseUri) |
66 { | 73 { |
67 OrthancStone::WasmWebService::GetInstance().SetBaseUri(baseUri); | 74 OrthancStone::WasmWebService::GetInstance().SetBaseUri(baseUri); |
89 { | 96 { |
90 baseUri_ = baseUri; | 97 baseUri_ = baseUri; |
91 } | 98 } |
92 } | 99 } |
93 | 100 |
94 void ToJsonString(std::string& output, const IWebService::Headers& headers) | 101 void ToJsonString(std::string& output, const IWebService::HttpHeaders& headers) |
95 { | 102 { |
96 Json::Value jsonHeaders; | 103 Json::Value jsonHeaders; |
97 for (IWebService::Headers::const_iterator it = headers.begin(); it != headers.end(); it++ ) | 104 for (IWebService::HttpHeaders::const_iterator it = headers.begin(); it != headers.end(); it++ ) |
98 { | 105 { |
99 jsonHeaders[it->first] = it->second; | 106 jsonHeaders[it->first] = it->second; |
100 } | 107 } |
101 | 108 |
102 Json::StreamWriterBuilder builder; | 109 Json::StreamWriterBuilder builder; |
106 writer->write(jsonHeaders, &outputStr); | 113 writer->write(jsonHeaders, &outputStr); |
107 output = outputStr.str(); | 114 output = outputStr.str(); |
108 } | 115 } |
109 | 116 |
110 void WasmWebService::PostAsync(const std::string& relativeUri, | 117 void WasmWebService::PostAsync(const std::string& relativeUri, |
111 const Headers& headers, | 118 const HttpHeaders& headers, |
112 const std::string& body, | 119 const std::string& body, |
113 Orthanc::IDynamicObject* payload, | 120 Orthanc::IDynamicObject* payload, |
114 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, | 121 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, |
115 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, | 122 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, |
116 unsigned int timeoutInSeconds) | 123 unsigned int timeoutInSeconds) |
117 { | 124 { |
118 std::string uri = baseUri_ + relativeUri; | 125 std::string uri = baseUri_ + relativeUri; |
119 std::string headersInJsonString; | 126 std::string headersInJsonString; |
120 ToJsonString(headersInJsonString, headers); | 127 ToJsonString(headersInJsonString, headers); |
121 WasmWebService_PostAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), | 128 WasmWebService_PostAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), |
122 body.c_str(), body.size(), payload, timeoutInSeconds); | 129 body.c_str(), body.size(), payload, timeoutInSeconds); |
123 } | 130 } |
124 | 131 |
125 void WasmWebService::DeleteAsync(const std::string& relativeUri, | 132 void WasmWebService::DeleteAsync(const std::string& relativeUri, |
126 const Headers& headers, | 133 const HttpHeaders& headers, |
127 Orthanc::IDynamicObject* payload, | 134 Orthanc::IDynamicObject* payload, |
128 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, | 135 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, |
129 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, | 136 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, |
130 unsigned int timeoutInSeconds) | 137 unsigned int timeoutInSeconds) |
131 { | 138 { |
135 WasmWebService_DeleteAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), | 142 WasmWebService_DeleteAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), |
136 payload, timeoutInSeconds); | 143 payload, timeoutInSeconds); |
137 } | 144 } |
138 | 145 |
139 void WasmWebService::GetAsync(const std::string& relativeUri, | 146 void WasmWebService::GetAsync(const std::string& relativeUri, |
140 const Headers& headers, | 147 const HttpHeaders& headers, |
141 Orthanc::IDynamicObject* payload, | 148 Orthanc::IDynamicObject* payload, |
142 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, | 149 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, |
143 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, | 150 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, |
144 unsigned int timeoutInSeconds) | 151 unsigned int timeoutInSeconds) |
145 { | 152 { |
146 std::string uri = baseUri_ + relativeUri; | 153 std::string uri = baseUri_ + relativeUri; |
147 std::string headersInJsonString; | 154 std::string headersInJsonString; |
148 ToJsonString(headersInJsonString, headers); | 155 ToJsonString(headersInJsonString, headers); |
149 WasmWebService_GetAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload, timeoutInSeconds); | 156 WasmWebService_GetAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload, timeoutInSeconds); |
150 } | 157 } |
151 | |
152 } | 158 } |