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_impl.h"
17
18 #include "ohos_nweb/bridge/ark_web_resource_ready_callback_wrapper.h"
19
20 #include "base/bridge/ark_web_bridge_macros.h"
21
22 namespace OHOS::ArkWeb {
23
ArkWebUrlResourceResponseImpl(std::shared_ptr<OHOS::NWeb::NWebUrlResourceResponse> nweb_url_resource_response)24 ArkWebUrlResourceResponseImpl::ArkWebUrlResourceResponseImpl(
25 std::shared_ptr<OHOS::NWeb::NWebUrlResourceResponse> nweb_url_resource_response)
26 : nweb_url_resource_response_(nweb_url_resource_response)
27 {}
28
ResponseData()29 ArkWebString ArkWebUrlResourceResponseImpl::ResponseData()
30 {
31 return ArkWebStringClassToStruct(nweb_url_resource_response_->ResponseData());
32 }
33
PutResponseData(const ArkWebString & input_stream)34 void ArkWebUrlResourceResponseImpl::PutResponseData(const ArkWebString& input_stream)
35 {
36 nweb_url_resource_response_->PutResponseData(ArkWebStringStructToClass(input_stream));
37 }
38
ResponseStatus()39 ArkWebString ArkWebUrlResourceResponseImpl::ResponseStatus()
40 {
41 return ArkWebStringClassToStruct(nweb_url_resource_response_->ResponseStatus());
42 }
43
ResponseHeaders()44 const ArkWebStringMap ArkWebUrlResourceResponseImpl::ResponseHeaders()
45 {
46 return ArkWebStringMapClassToStruct(nweb_url_resource_response_->ResponseHeaders());
47 }
48
PutResponseHeaders(const ArkWebStringMap & response_headers)49 void ArkWebUrlResourceResponseImpl::PutResponseHeaders(const ArkWebStringMap& response_headers)
50 {
51 nweb_url_resource_response_->PutResponseHeaders(ArkWebStringMapStructToClass(response_headers));
52 }
53
ResponseDataType()54 int32_t ArkWebUrlResourceResponseImpl::ResponseDataType()
55 {
56 return static_cast<int32_t>(nweb_url_resource_response_->ResponseDataType());
57 }
58
ResponseMimeType()59 ArkWebString ArkWebUrlResourceResponseImpl::ResponseMimeType()
60 {
61 return ArkWebStringClassToStruct(nweb_url_resource_response_->ResponseMimeType());
62 }
63
PutResponseMimeType(const ArkWebString & mime_type)64 void ArkWebUrlResourceResponseImpl::PutResponseMimeType(const ArkWebString& mime_type)
65 {
66 nweb_url_resource_response_->PutResponseMimeType(ArkWebStringStructToClass(mime_type));
67 }
68
ResponseEncoding()69 ArkWebString ArkWebUrlResourceResponseImpl::ResponseEncoding()
70 {
71 return ArkWebStringClassToStruct(nweb_url_resource_response_->ResponseEncoding());
72 }
73
PutResponseEncoding(const ArkWebString & encoding)74 void ArkWebUrlResourceResponseImpl::PutResponseEncoding(const ArkWebString& encoding)
75 {
76 nweb_url_resource_response_->PutResponseEncoding(ArkWebStringStructToClass(encoding));
77 }
78
ResponseDataStatus()79 bool ArkWebUrlResourceResponseImpl::ResponseDataStatus()
80 {
81 return nweb_url_resource_response_->ResponseDataStatus();
82 }
83
PutResponseDataStatus(bool is_data_ready)84 void ArkWebUrlResourceResponseImpl::PutResponseDataStatus(bool is_data_ready)
85 {
86 nweb_url_resource_response_->PutResponseDataStatus(is_data_ready);
87 }
88
ResponseStatusCode()89 int ArkWebUrlResourceResponseImpl::ResponseStatusCode()
90 {
91 return nweb_url_resource_response_->ResponseStatusCode();
92 }
93
ResponseResourceUrl()94 ArkWebString ArkWebUrlResourceResponseImpl::ResponseResourceUrl()
95 {
96 return ArkWebStringClassToStruct(nweb_url_resource_response_->ResponseResourceUrl());
97 }
98
PutResponseResourceUrl(const ArkWebString & url)99 void ArkWebUrlResourceResponseImpl::PutResponseResourceUrl(const ArkWebString& url)
100 {
101 nweb_url_resource_response_->PutResponseResourceUrl(ArkWebStringStructToClass(url));
102 }
103
ResponseFileHandle()104 int ArkWebUrlResourceResponseImpl::ResponseFileHandle()
105 {
106 return nweb_url_resource_response_->ResponseFileHandle();
107 }
108
PutResponseFileHandle(int fd)109 void ArkWebUrlResourceResponseImpl::PutResponseFileHandle(int fd)
110 {
111 nweb_url_resource_response_->PutResponseFileHandle(fd);
112 }
113
ResponseIsFileHandle()114 bool ArkWebUrlResourceResponseImpl::ResponseIsFileHandle()
115 {
116 return nweb_url_resource_response_->ResponseIsFileHandle();
117 }
118
PutResponseStateAndStatuscode(int status_code,const ArkWebString & reason_phrase)119 void ArkWebUrlResourceResponseImpl::PutResponseStateAndStatuscode(int status_code, const ArkWebString& reason_phrase)
120 {
121 nweb_url_resource_response_->PutResponseStateAndStatuscode(status_code, ArkWebStringStructToClass(reason_phrase));
122 }
123
PutResponseReadyCallback(ArkWebRefPtr<ArkWebResourceReadyCallback> callback)124 void ArkWebUrlResourceResponseImpl::PutResponseReadyCallback(ArkWebRefPtr<ArkWebResourceReadyCallback> callback)
125 {
126 if (CHECK_REF_PTR_IS_NULL(callback)) {
127 nweb_url_resource_response_->PutResponseReadyCallback(nullptr);
128 return;
129 }
130
131 nweb_url_resource_response_->PutResponseReadyCallback(
132 std::make_shared<ArkWebResourceReadyCallbackWrapper>(callback));
133 }
134
PutResponseDataBuffer(char * buffer,size_t bufferSize)135 void ArkWebUrlResourceResponseImpl::PutResponseDataBuffer(char* buffer, size_t bufferSize)
136 {
137 nweb_url_resource_response_->PutResponseDataBuffer(buffer, bufferSize);
138 }
139
GetResponseDataBuffer()140 char* ArkWebUrlResourceResponseImpl::GetResponseDataBuffer()
141 {
142 return nweb_url_resource_response_->GetResponseDataBuffer();
143 }
144
GetResponseDataBufferSize()145 size_t ArkWebUrlResourceResponseImpl::GetResponseDataBufferSize()
146 {
147 return nweb_url_resource_response_->GetResponseDataBufferSize();
148 }
149
150 } // namespace OHOS::ArkWeb
151