1 /*
2 * Copyright (c) 2025 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 "data_params_conversion.h"
17 #include "ndk_data_conversion.h"
18
19 namespace OHOS::UDMF {
GetInnerDataParams(OH_UdmfGetDataParams & ndkDataParams,QueryOption & query,GetDataParams & dataParams)20 Status DataParamsConversion::GetInnerDataParams(OH_UdmfGetDataParams &ndkDataParams, QueryOption &query,
21 GetDataParams &dataParams)
22 {
23 if (ndkDataParams.dataProgressListener == nullptr || query.key.size() == 0) {
24 return Status::E_INVALID_PARAMETERS;
25 }
26 dataParams.query = query;
27 if (ndkDataParams.destUri.size() > 0) {
28 dataParams.destUri = ndkDataParams.destUri;
29 }
30 dataParams.fileConflictOptions = static_cast<FileConflictOptions>(ndkDataParams.fileConflictOptions);
31 dataParams.progressIndicator = static_cast<ProgressIndicator>(ndkDataParams.progressIndicator);
32 dataParams.progressListener = [ndkDataParams](ProgressInfo progressInfo, std::shared_ptr<UnifiedData> data) {
33 OH_Udmf_ProgressInfo ndkProgrssInfo;
34 ndkProgrssInfo.progress = progressInfo.progress;
35 ndkProgrssInfo.status = progressInfo.progressStatus;
36 if (data == nullptr) {
37 ndkDataParams.dataProgressListener(&ndkProgrssInfo, nullptr);
38 return;
39 }
40 OH_UdmfData *ndkData = OH_UdmfData_Create();
41 NdkDataConversion::GetNdkUnifiedData(data, ndkData);
42 ndkDataParams.dataProgressListener(&ndkProgrssInfo, ndkData);
43 OH_UdmfData_Destroy(ndkData);
44 };
45 return Status::E_OK;
46 }
47 }
48