1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_ci#ifndef INCLUDE_TUNING_BASE_FILE_UTILS_H 17fb726d48Sopenharmony_ci#define INCLUDE_TUNING_BASE_FILE_UTILS_H 18fb726d48Sopenharmony_ci 19fb726d48Sopenharmony_ci#include <string> 20fb726d48Sopenharmony_ci#include <vector> 21fb726d48Sopenharmony_ci 22fb726d48Sopenharmony_cinamespace SysTuning { 23fb726d48Sopenharmony_cinamespace base { 24fb726d48Sopenharmony_ci#define TS_PERMISSION_RW 0600 25fb726d48Sopenharmony_ci#define TS_PERMISSION_RWX 777 26fb726d48Sopenharmony_ciconstexpr uint32_t K_FILE_MODE_INVALID = 0xFFFFFFFF; 27fb726d48Sopenharmony_cienum TraceParserStatus { 28fb726d48Sopenharmony_ci TRACE_PARSER_NORMAL = 0, 29fb726d48Sopenharmony_ci TRACE_PARSER_FILE_TYPE_ERROR = 1, 30fb726d48Sopenharmony_ci TRACE_PARSE_ERROR = 2, 31fb726d48Sopenharmony_ci TRACE_PARSER_ABNORMAL = 3 32fb726d48Sopenharmony_ci}; 33fb726d48Sopenharmony_ci 34fb726d48Sopenharmony_civoid SetAnalysisResult(TraceParserStatus stat); 35fb726d48Sopenharmony_ci 36fb726d48Sopenharmony_ciTraceParserStatus GetAnalysisResult(); 37fb726d48Sopenharmony_ci 38fb726d48Sopenharmony_cissize_t Read(int32_t fd, uint8_t *dst, size_t dstSize); 39fb726d48Sopenharmony_ci 40fb726d48Sopenharmony_ciint32_t OpenFile(const std::string &path, int32_t flags, uint32_t mode = K_FILE_MODE_INVALID); 41fb726d48Sopenharmony_ci 42fb726d48Sopenharmony_cistd::string GetExecutionDirectoryPath(); 43fb726d48Sopenharmony_ci 44fb726d48Sopenharmony_ci#if defined(is_linux) || defined(_WIN32) 45fb726d48Sopenharmony_cistd::vector<std::string> GetFilesNameFromDir(const std::string &path, bool onlyFileName = true); 46fb726d48Sopenharmony_ci#endif 47fb726d48Sopenharmony_ci 48fb726d48Sopenharmony_cibool UnZipFile(const std::string &zipFile, std::string &traceFile); 49fb726d48Sopenharmony_ci 50fb726d48Sopenharmony_cibool LocalUnzip(const std::string &zipFile, const std::string &dstDir); 51fb726d48Sopenharmony_ci} // namespace base 52fb726d48Sopenharmony_ci} // namespace SysTuning 53fb726d48Sopenharmony_ci#endif // INCLUDE_TUNING_BASE_FILE_UTILS_H_ 54