18d05d8e7Sopenharmony_ci/* 28d05d8e7Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 38d05d8e7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 48d05d8e7Sopenharmony_ci * you may not use this file except in compliance with the License. 58d05d8e7Sopenharmony_ci * You may obtain a copy of the License at 68d05d8e7Sopenharmony_ci * 78d05d8e7Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 88d05d8e7Sopenharmony_ci * 98d05d8e7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 108d05d8e7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 118d05d8e7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128d05d8e7Sopenharmony_ci * See the License for the specific language governing permissions and 138d05d8e7Sopenharmony_ci * limitations under the License. 148d05d8e7Sopenharmony_ci */ 158d05d8e7Sopenharmony_ci 168d05d8e7Sopenharmony_ci#include <memory> 178d05d8e7Sopenharmony_ci#include <vector> 188d05d8e7Sopenharmony_ci 198d05d8e7Sopenharmony_ci#include "file_trash_n_exporter.h" 208d05d8e7Sopenharmony_ci#include "filemgmt_libn.h" 218d05d8e7Sopenharmony_ci#include "hilog_wrapper.h" 228d05d8e7Sopenharmony_ci 238d05d8e7Sopenharmony_cinamespace OHOS { 248d05d8e7Sopenharmony_cinamespace Trash { 258d05d8e7Sopenharmony_ciusing namespace std; 268d05d8e7Sopenharmony_ci 278d05d8e7Sopenharmony_ciEXTERN_C_START 288d05d8e7Sopenharmony_cistatic napi_value Export(napi_env env, napi_value exports) 298d05d8e7Sopenharmony_ci{ 308d05d8e7Sopenharmony_ci std::vector<unique_ptr<NExporter>> products; 318d05d8e7Sopenharmony_ci products.emplace_back(make_unique<FileTrashNExporter>(env, exports)); 328d05d8e7Sopenharmony_ci 338d05d8e7Sopenharmony_ci for (auto &&product : products) { 348d05d8e7Sopenharmony_ci string nExporterName = product->GetClassName(); 358d05d8e7Sopenharmony_ci if (!product->Export()) { 368d05d8e7Sopenharmony_ci HILOG_ERROR("INNER BUG. Failed to export class %{public}s for module trash", nExporterName.c_str()); 378d05d8e7Sopenharmony_ci return nullptr; 388d05d8e7Sopenharmony_ci } else { 398d05d8e7Sopenharmony_ci HILOG_DEBUG("Class %{public}s for module trash has been exported", nExporterName.c_str()); 408d05d8e7Sopenharmony_ci } 418d05d8e7Sopenharmony_ci } 428d05d8e7Sopenharmony_ci return exports; 438d05d8e7Sopenharmony_ci} 448d05d8e7Sopenharmony_ciEXTERN_C_END 458d05d8e7Sopenharmony_ci 468d05d8e7Sopenharmony_cistatic napi_module _module = { 478d05d8e7Sopenharmony_ci .nm_version = 1, 488d05d8e7Sopenharmony_ci .nm_flags = 0, 498d05d8e7Sopenharmony_ci .nm_filename = nullptr, 508d05d8e7Sopenharmony_ci .nm_register_func = Export, 518d05d8e7Sopenharmony_ci .nm_modname = "file.trash", 528d05d8e7Sopenharmony_ci .nm_priv = ((void *)0), 538d05d8e7Sopenharmony_ci .reserved = {0} 548d05d8e7Sopenharmony_ci}; 558d05d8e7Sopenharmony_ci 568d05d8e7Sopenharmony_ciextern "C" __attribute__((constructor)) void RegisterModule(void) 578d05d8e7Sopenharmony_ci{ 588d05d8e7Sopenharmony_ci napi_module_register(&_module); 598d05d8e7Sopenharmony_ci} 608d05d8e7Sopenharmony_ci} // namespace Trash 618d05d8e7Sopenharmony_ci} // namespace OHOS 62