1/* 2 * Copyright (c) 2023 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 <memory> 17#include <vector> 18 19#include "file_trash_n_exporter.h" 20#include "filemgmt_libn.h" 21#include "hilog_wrapper.h" 22 23namespace OHOS { 24namespace Trash { 25using namespace std; 26 27EXTERN_C_START 28static napi_value Export(napi_env env, napi_value exports) 29{ 30 std::vector<unique_ptr<NExporter>> products; 31 products.emplace_back(make_unique<FileTrashNExporter>(env, exports)); 32 33 for (auto &&product : products) { 34 string nExporterName = product->GetClassName(); 35 if (!product->Export()) { 36 HILOG_ERROR("INNER BUG. Failed to export class %{public}s for module trash", nExporterName.c_str()); 37 return nullptr; 38 } else { 39 HILOG_DEBUG("Class %{public}s for module trash has been exported", nExporterName.c_str()); 40 } 41 } 42 return exports; 43} 44EXTERN_C_END 45 46static napi_module _module = { 47 .nm_version = 1, 48 .nm_flags = 0, 49 .nm_filename = nullptr, 50 .nm_register_func = Export, 51 .nm_modname = "file.trash", 52 .nm_priv = ((void *)0), 53 .reserved = {0} 54}; 55 56extern "C" __attribute__((constructor)) void RegisterModule(void) 57{ 58 napi_module_register(&_module); 59} 60} // namespace Trash 61} // namespace OHOS 62