1 /*
2  * Copyright (c) 2024 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 #ifndef CORE_OS_OHOS_PLATFORM_OHOS_H
17 #define CORE_OS_OHOS_PLATFORM_OHOS_H
18 
19 #include <platform/ohos/core/os/intf_platform.h>
20 
21 #include <base/containers/string.h>
22 #include <core/namespace.h>
23 
24 CORE_BEGIN_NAMESPACE()
25 struct PlatformData {
26     /** Core root path */
27     BASE_NS::string coreRootPath = "./";
28     /** Application root path */
29     BASE_NS::string appRootPath = "./";
30     /** Application plugin path */
31     BASE_NS::string appPluginPath = "./";
32 
33     /** Hap Info */
34     BASE_NS::string hapPath = "./";
35     BASE_NS::string bundleName = "./";
36     BASE_NS::string moduleName = "./";
37 };
38 
39 /** Interface for platform-specific functions. */
40 class PlatformOHOS final : public IPlatform {
41 public:
42     explicit PlatformOHOS(PlatformCreateInfo const& createInfo);
43     ~PlatformOHOS() override;
44 
45     const PlatformData& GetPlatformData() const override;
46     BASE_NS::string RegisterDefaultPaths(IFileManager& fileManage) override;
47     void RegisterPluginLocations(IPluginRegister& registry) override;
48 
49 private:
50     PlatformData plat_;
51 };
52 
53 CORE_END_NAMESPACE()
54 
55 #endif // CORE_OS_OHOS_PLATFORM_OHOS_H
56