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 }