140f5d65dSopenharmony_ci/* 240f5d65dSopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 340f5d65dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 440f5d65dSopenharmony_ci * you may not use this file except in compliance with the License. 540f5d65dSopenharmony_ci * You may obtain a copy of the License at 640f5d65dSopenharmony_ci * 740f5d65dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 840f5d65dSopenharmony_ci * 940f5d65dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1040f5d65dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1140f5d65dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1240f5d65dSopenharmony_ci * See the License for the specific language governing permissions and 1340f5d65dSopenharmony_ci * limitations under the License. 1440f5d65dSopenharmony_ci */ 1540f5d65dSopenharmony_ci 1640f5d65dSopenharmony_ci#ifndef FILEMANAGEMENT_APP_FILE_SERVICE_INTERFACES_INNERKITS_NATIVE_COMMON_INCLUDE_SANDBOX_HELPER_H 1740f5d65dSopenharmony_ci#define FILEMANAGEMENT_APP_FILE_SERVICE_INTERFACES_INNERKITS_NATIVE_COMMON_INCLUDE_SANDBOX_HELPER_H 1840f5d65dSopenharmony_ci 1940f5d65dSopenharmony_ci#include <mutex> 2040f5d65dSopenharmony_ci#include <string> 2140f5d65dSopenharmony_ci#include <unordered_map> 2240f5d65dSopenharmony_ci 2340f5d65dSopenharmony_cinamespace OHOS { 2440f5d65dSopenharmony_cinamespace AppFileService { 2540f5d65dSopenharmony_ciclass SandboxHelper { 2640f5d65dSopenharmony_ciprivate: 2740f5d65dSopenharmony_ci static std::mutex mapMutex_; 2840f5d65dSopenharmony_ci static std::unordered_map<std::string, std::string> sandboxPathMap_; 2940f5d65dSopenharmony_ci static std::unordered_map<std::string, std::string> backupSandboxPathMap_; 3040f5d65dSopenharmony_ci static bool GetSandboxPathMap(); 3140f5d65dSopenharmony_ci static bool GetBackupSandboxPathMap(); 3240f5d65dSopenharmony_cipublic: 3340f5d65dSopenharmony_ci static std::string Encode(const std::string &uri); 3440f5d65dSopenharmony_ci static std::string Decode(const std::string &uri); 3540f5d65dSopenharmony_ci static bool CheckValidPath(const std::string &filePath); 3640f5d65dSopenharmony_ci static int32_t GetPhysicalPath(const std::string &fileUri, const std::string &userId, 3740f5d65dSopenharmony_ci std::string &physicalPath); 3840f5d65dSopenharmony_ci static int32_t GetBackupPhysicalPath(const std::string &fileUri, const std::string &userId, 3940f5d65dSopenharmony_ci std::string &physicalPath); 4040f5d65dSopenharmony_ci static bool IsValidPath(const std::string &path); 4140f5d65dSopenharmony_ci}; 4240f5d65dSopenharmony_ci} // namespace AppFileService 4340f5d65dSopenharmony_ci} // namespace OHOS 4440f5d65dSopenharmony_ci 4540f5d65dSopenharmony_ci#endif // FILEMANAGEMENT_APP_FILE_SERVICE_INTERFACES_INNERKITS_NATIVE_COMMON_INCLUDE_SANDBOX_HELPER_H