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 "filemgmt_libn.h" 208d05d8e7Sopenharmony_ci#include "hilog_wrapper.h" 218d05d8e7Sopenharmony_ci#include "recent_n_exporter.h" 228d05d8e7Sopenharmony_ci 238d05d8e7Sopenharmony_cinamespace OHOS::FileManagement::Recent { 248d05d8e7Sopenharmony_ciusing namespace std; 258d05d8e7Sopenharmony_ciusing namespace LibN; 268d05d8e7Sopenharmony_ci 278d05d8e7Sopenharmony_cistatic napi_value Export(napi_env env, napi_value exports) 288d05d8e7Sopenharmony_ci{ 298d05d8e7Sopenharmony_ci std::vector<unique_ptr<NExporter>> products; 308d05d8e7Sopenharmony_ci products.emplace_back(make_unique<RecentNExporter>(env, exports)); 318d05d8e7Sopenharmony_ci for (auto &&product : products) { 328d05d8e7Sopenharmony_ci if (!product->Export()) { 338d05d8e7Sopenharmony_ci HILOG_ERROR("INNER BUG. Failed to export class %{public}s for module recent", 348d05d8e7Sopenharmony_ci product->GetClassName().c_str()); 358d05d8e7Sopenharmony_ci return nullptr; 368d05d8e7Sopenharmony_ci } else { 378d05d8e7Sopenharmony_ci HILOG_DEBUG("Class %{public}s for module fileio has been exported", product->GetClassName().c_str()); 388d05d8e7Sopenharmony_ci } 398d05d8e7Sopenharmony_ci } 408d05d8e7Sopenharmony_ci 418d05d8e7Sopenharmony_ci return exports; 428d05d8e7Sopenharmony_ci} 438d05d8e7Sopenharmony_ci 448d05d8e7Sopenharmony_cistatic napi_module _module = { 458d05d8e7Sopenharmony_ci .nm_version = 1, 468d05d8e7Sopenharmony_ci .nm_flags = 0, 478d05d8e7Sopenharmony_ci .nm_filename = nullptr, 488d05d8e7Sopenharmony_ci .nm_register_func = Export, 498d05d8e7Sopenharmony_ci .nm_modname = "file.recent", 508d05d8e7Sopenharmony_ci .nm_priv = ((void *)0), 518d05d8e7Sopenharmony_ci .reserved = {0} 528d05d8e7Sopenharmony_ci}; 538d05d8e7Sopenharmony_ci 548d05d8e7Sopenharmony_ciextern "C" __attribute__((constructor)) void RegisterModule(void) 558d05d8e7Sopenharmony_ci{ 568d05d8e7Sopenharmony_ci napi_module_register(&_module); 578d05d8e7Sopenharmony_ci} 588d05d8e7Sopenharmony_ci} // namespace OHOS::AppFileService::ModuleFileUri