comparison Platforms/Wasm/WasmWebService.cpp @ 303:ed1a4302154f am-callable-and-promise

new messages in wasm too
author am@osimis.io
date Tue, 18 Sep 2018 18:17:26 +0200
parents 3897f9f28cfa
children 14ef1227120f
comparison
equal deleted inserted replaced
302:4a79193ffb58 303:ed1a4302154f
5 5
6 #ifdef __cplusplus 6 #ifdef __cplusplus
7 extern "C" { 7 extern "C" {
8 #endif 8 #endif
9 9
10 extern void WasmWebService_ScheduleGetRequest(void* callback, 10 extern void WasmWebService_GetAsync(void* callableSuccess,
11 const char* uri, 11 void* callableFailure,
12 const char* headersInJsonString, 12 const char* uri,
13 void* payload); 13 const char* headersInJsonString,
14 void* payload);
14 15
15 extern void WasmWebService_NewScheduleGetRequest(void* callableSuccess, 16 extern void WasmWebService_PostAsync(void* callableSuccess,
16 void* callableFailure, 17 void* callableFailure,
17 const char* uri, 18 const char* uri,
18 const char* headersInJsonString, 19 const char* headersInJsonString,
19 void* payload); 20 const void* body,
21 size_t bodySize,
22 void* payload);
20 23
21 extern void WasmWebService_SchedulePostRequest(void* callback,
22 const char* uri,
23 const char* headersInJsonString,
24 const void* body,
25 size_t bodySize,
26 void* payload);
27 24
28 void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifyError(void* callback, 25 void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifyError(void* failureCallable,
29 const char* uri,
30 void* payload)
31 {
32 if (callback == NULL)
33 {
34 throw;
35 }
36 else
37 {
38 reinterpret_cast<OrthancStone::IWebService::ICallback*>(callback)->
39 OnHttpRequestError(uri, reinterpret_cast<Orthanc::IDynamicObject*>(payload));
40 }
41 }
42
43 void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifySuccess(void* callback,
44 const char* uri,
45 const void* body,
46 size_t bodySize,
47 void* payload)
48 {
49 if (callback == NULL)
50 {
51 throw;
52 }
53 else
54 {
55 reinterpret_cast<OrthancStone::IWebService::ICallback*>(callback)->
56 OnHttpRequestSuccess(uri, body, bodySize, reinterpret_cast<Orthanc::IDynamicObject*>(payload));
57 }
58 }
59
60 void EMSCRIPTEN_KEEPALIVE WasmWebService_NewNotifyError(void* failureCallable,
61 const char* uri, 26 const char* uri,
62 void* payload) 27 void* payload)
63 { 28 {
64 if (failureCallable == NULL) 29 if (failureCallable == NULL)
65 { 30 {
66 throw; 31 throw;
67 } 32 }
68 else 33 else
69 { 34 {
70 reinterpret_cast<OrthancStone::MessageHandler<OrthancStone::IWebService::NewHttpRequestErrorMessage>*>(failureCallable)-> 35 reinterpret_cast<OrthancStone::MessageHandler<OrthancStone::IWebService::HttpRequestErrorMessage>*>(failureCallable)->
71 Apply(OrthancStone::IWebService::NewHttpRequestErrorMessage(uri, reinterpret_cast<Orthanc::IDynamicObject*>(payload))); 36 Apply(OrthancStone::IWebService::HttpRequestErrorMessage(uri, reinterpret_cast<Orthanc::IDynamicObject*>(payload)));
72 } 37 }
73 } 38 }
74 39
75 void EMSCRIPTEN_KEEPALIVE WasmWebService_NewNotifySuccess(void* successCallable, 40 void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifySuccess(void* successCallable,
76 const char* uri, 41 const char* uri,
77 const void* body, 42 const void* body,
78 size_t bodySize, 43 size_t bodySize,
79 void* payload) 44 void* payload)
80 { 45 {
82 { 47 {
83 throw; 48 throw;
84 } 49 }
85 else 50 else
86 { 51 {
87 reinterpret_cast<OrthancStone::MessageHandler<OrthancStone::IWebService::NewHttpRequestSuccessMessage>*>(successCallable)-> 52 reinterpret_cast<OrthancStone::MessageHandler<OrthancStone::IWebService::HttpRequestSuccessMessage>*>(successCallable)->
88 Apply(OrthancStone::IWebService::NewHttpRequestSuccessMessage(uri, body, bodySize, reinterpret_cast<Orthanc::IDynamicObject*>(payload))); 53 Apply(OrthancStone::IWebService::HttpRequestSuccessMessage(uri, body, bodySize, reinterpret_cast<Orthanc::IDynamicObject*>(payload)));
89 } 54 }
90 } 55 }
91 56
92 void EMSCRIPTEN_KEEPALIVE WasmWebService_SetBaseUri(const char* baseUri) 57 void EMSCRIPTEN_KEEPALIVE WasmWebService_SetBaseUri(const char* baseUri)
93 { 58 {
132 97
133 writer->write(jsonHeaders, &outputStr); 98 writer->write(jsonHeaders, &outputStr);
134 output = outputStr.str(); 99 output = outputStr.str();
135 } 100 }
136 101
137 void WasmWebService::ScheduleGetRequest(ICallback& callback, 102 void WasmWebService::PostAsync(const std::string& relativeUri,
138 const std::string& relativeUri, 103 const Headers& headers,
139 const Headers& headers, 104 const std::string& body,
140 Orthanc::IDynamicObject* payload) 105 Orthanc::IDynamicObject* payload,
106 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
107 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable)
141 { 108 {
142 std::string uri = baseUri_ + relativeUri; 109 std::string uri = baseUri_ + relativeUri;
143 std::string headersInJsonString; 110 std::string headersInJsonString;
144 ToJsonString(headersInJsonString, headers); 111 ToJsonString(headersInJsonString, headers);
145 WasmWebService_ScheduleGetRequest(&callback, uri.c_str(), headersInJsonString.c_str(), payload); 112 WasmWebService_PostAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(),
146 }
147
148 void WasmWebService::SchedulePostRequest(ICallback& callback,
149 const std::string& relativeUri,
150 const Headers& headers,
151 const std::string& body,
152 Orthanc::IDynamicObject* payload)
153 {
154 std::string uri = baseUri_ + relativeUri;
155 std::string headersInJsonString;
156 ToJsonString(headersInJsonString, headers);
157 WasmWebService_SchedulePostRequest(&callback, uri.c_str(), headersInJsonString.c_str(),
158 body.c_str(), body.size(), payload); 113 body.c_str(), body.size(), payload);
159 } 114 }
160 115
161 void WasmWebService::GetAsync(const std::string& relativeUri, 116 void WasmWebService::GetAsync(const std::string& relativeUri,
162 const Headers& headers, 117 const Headers& headers,
163 Orthanc::IDynamicObject* payload, 118 Orthanc::IDynamicObject* payload,
164 MessageHandler<IWebService::NewHttpRequestSuccessMessage>* successCallable, 119 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
165 MessageHandler<IWebService::NewHttpRequestErrorMessage>* failureCallable) 120 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable)
166 { 121 {
167 std::string uri = baseUri_ + relativeUri; 122 std::string uri = baseUri_ + relativeUri;
168 std::string headersInJsonString; 123 std::string headersInJsonString;
169 ToJsonString(headersInJsonString, headers); 124 ToJsonString(headersInJsonString, headers);
170 WasmWebService_NewScheduleGetRequest(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload); 125 WasmWebService_GetAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload);
171 } 126 }
172 127
173 } 128 }