1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "ohos_nweb/bridge/ark_web_url_resource_response_wrapper.h"
17
18 #include "ohos_nweb/bridge/ark_web_resource_ready_callback_impl.h"
19
20 #include "base/bridge/ark_web_bridge_macros.h"
21
22 namespace OHOS::ArkWeb {
23
ArkWebUrlResourceResponseWrapper(ArkWebRefPtr<ArkWebUrlResourceResponse> ark_web_url_resource_response)24 ArkWebUrlResourceResponseWrapper::ArkWebUrlResourceResponseWrapper(
25 ArkWebRefPtr<ArkWebUrlResourceResponse> ark_web_url_resource_response)
26 : ark_web_url_resource_response_(ark_web_url_resource_response)
27 {}
28
ResponseData()29 std::string ArkWebUrlResourceResponseWrapper::ResponseData()
30 {
31 ArkWebString stData = ark_web_url_resource_response_->ResponseData();
32
33 std::string objData = ArkWebStringStructToClass(stData);
34 ArkWebStringStructRelease(stData);
35 return objData;
36 }
37
PutResponseData(const std::string & input_stream)38 void ArkWebUrlResourceResponseWrapper::PutResponseData(const std::string& input_stream)
39 {
40 ArkWebString stData = ArkWebStringClassToStruct(input_stream);
41
42 ark_web_url_resource_response_->PutResponseData(stData);
43
44 ArkWebStringStructRelease(stData);
45 }
46
ResponseStatus()47 std::string ArkWebUrlResourceResponseWrapper::ResponseStatus()
48 {
49 ArkWebString stStatus = ark_web_url_resource_response_->ResponseStatus();
50
51 std::string objStatus = ArkWebStringStructToClass(stStatus);
52 ArkWebStringStructRelease(stStatus);
53 return objStatus;
54 }
55
ResponseHeaders()56 std::map<std::string, std::string> ArkWebUrlResourceResponseWrapper::ResponseHeaders()
57 {
58 ArkWebStringMap stHeaders = ark_web_url_resource_response_->ResponseHeaders();
59
60 std::map<std::string, std::string> objHeaders = ArkWebStringMapStructToClass(stHeaders);
61 ArkWebStringMapStructRelease(stHeaders);
62 return objHeaders;
63 }
64
PutResponseHeaders(const std::map<std::string,std::string> & response_headers)65 void ArkWebUrlResourceResponseWrapper::PutResponseHeaders(const std::map<std::string, std::string>& response_headers)
66 {
67 ArkWebStringMap stHeaders = ArkWebStringMapClassToStruct(response_headers);
68
69 ark_web_url_resource_response_->PutResponseHeaders(stHeaders);
70
71 ArkWebStringMapStructRelease(stHeaders);
72 }
73
ResponseDataType()74 ArkWebResponseDataType ArkWebUrlResourceResponseWrapper::ResponseDataType()
75 {
76 return static_cast<ArkWebResponseDataType>(ark_web_url_resource_response_->ResponseDataType());
77 }
78
ResponseMimeType()79 std::string ArkWebUrlResourceResponseWrapper::ResponseMimeType()
80 {
81 ArkWebString stMimeType = ark_web_url_resource_response_->ResponseMimeType();
82
83 std::string objMimeType = ArkWebStringStructToClass(stMimeType);
84 ArkWebStringStructRelease(stMimeType);
85 return objMimeType;
86 }
87
PutResponseMimeType(const std::string & mime_type)88 void ArkWebUrlResourceResponseWrapper::PutResponseMimeType(const std::string& mime_type)
89 {
90 ArkWebString stMimeType = ArkWebStringClassToStruct(mime_type);
91
92 ark_web_url_resource_response_->PutResponseMimeType(stMimeType);
93
94 ArkWebStringStructRelease(stMimeType);
95 }
96
ResponseEncoding()97 std::string ArkWebUrlResourceResponseWrapper::ResponseEncoding()
98 {
99 ArkWebString stEncoding = ark_web_url_resource_response_->ResponseEncoding();
100
101 std::string objEncoding = ArkWebStringStructToClass(stEncoding);
102 ArkWebStringStructRelease(stEncoding);
103 return objEncoding;
104 }
105
PutResponseEncoding(const std::string & encoding)106 void ArkWebUrlResourceResponseWrapper::PutResponseEncoding(const std::string& encoding)
107 {
108 ArkWebString stEncoding = ArkWebStringClassToStruct(encoding);
109
110 ark_web_url_resource_response_->PutResponseEncoding(stEncoding);
111
112 ArkWebStringStructRelease(stEncoding);
113 }
114
ResponseDataStatus()115 bool ArkWebUrlResourceResponseWrapper::ResponseDataStatus()
116 {
117 return ark_web_url_resource_response_->ResponseDataStatus();
118 }
119
PutResponseDataStatus(bool is_data_ready)120 void ArkWebUrlResourceResponseWrapper::PutResponseDataStatus(bool is_data_ready)
121 {
122 ark_web_url_resource_response_->PutResponseDataStatus(is_data_ready);
123 }
124
ResponseStatusCode()125 int ArkWebUrlResourceResponseWrapper::ResponseStatusCode()
126 {
127 return ark_web_url_resource_response_->ResponseStatusCode();
128 }
129
ResponseResourceUrl()130 std::string ArkWebUrlResourceResponseWrapper::ResponseResourceUrl()
131 {
132 ArkWebString stUrl = ark_web_url_resource_response_->ResponseResourceUrl();
133
134 std::string objUrl = ArkWebStringStructToClass(stUrl);
135 ArkWebStringStructRelease(stUrl);
136 return objUrl;
137 }
138
PutResponseResourceUrl(const std::string & url)139 void ArkWebUrlResourceResponseWrapper::PutResponseResourceUrl(const std::string& url)
140 {
141 ArkWebString stUrl = ArkWebStringClassToStruct(url);
142
143 ark_web_url_resource_response_->PutResponseResourceUrl(stUrl);
144
145 ArkWebStringStructRelease(stUrl);
146 }
147
ResponseFileHandle()148 int ArkWebUrlResourceResponseWrapper::ResponseFileHandle()
149 {
150 return ark_web_url_resource_response_->ResponseFileHandle();
151 }
152
PutResponseFileHandle(int fd)153 void ArkWebUrlResourceResponseWrapper::PutResponseFileHandle(int fd)
154 {
155 ark_web_url_resource_response_->PutResponseFileHandle(fd);
156 }
157
ResponseIsFileHandle()158 bool ArkWebUrlResourceResponseWrapper::ResponseIsFileHandle()
159 {
160 return ark_web_url_resource_response_->ResponseIsFileHandle();
161 }
162
PutResponseStateAndStatuscode(int status_code,const std::string & reason_phrase)163 void ArkWebUrlResourceResponseWrapper::PutResponseStateAndStatuscode(int status_code, const std::string& reason_phrase)
164 {
165 ArkWebString stReasonPhrase = ArkWebStringClassToStruct(reason_phrase);
166
167 ark_web_url_resource_response_->PutResponseStateAndStatuscode(status_code, stReasonPhrase);
168
169 ArkWebStringStructRelease(stReasonPhrase);
170 }
171
PutResponseReadyCallback(std::shared_ptr<OHOS::NWeb::NWebResourceReadyCallback> callback)172 void ArkWebUrlResourceResponseWrapper::PutResponseReadyCallback(
173 std::shared_ptr<OHOS::NWeb::NWebResourceReadyCallback> callback)
174 {
175 if (CHECK_SHARED_PTR_IS_NULL(callback)) {
176 ark_web_url_resource_response_->PutResponseReadyCallback(nullptr);
177 return;
178 }
179
180 ark_web_url_resource_response_->PutResponseReadyCallback(new ArkWebResourceReadyCallbackImpl(callback));
181 }
182
PutResponseDataBuffer(char * buffer,size_t bufferSize)183 void ArkWebUrlResourceResponseWrapper::PutResponseDataBuffer(char* buffer, size_t bufferSize)
184 {
185 ark_web_url_resource_response_->PutResponseDataBuffer(buffer, bufferSize);
186 }
187
GetResponseDataBuffer()188 char* ArkWebUrlResourceResponseWrapper::GetResponseDataBuffer()
189 {
190 return ark_web_url_resource_response_->GetResponseDataBuffer();
191 }
192
GetResponseDataBufferSize()193 size_t ArkWebUrlResourceResponseWrapper::GetResponseDataBufferSize()
194 {
195 return ark_web_url_resource_response_->GetResponseDataBufferSize();
196 }
197
198 } // namespace OHOS::ArkWeb
199