/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#ifndef OHOS_RESOURCE_MANAGER_RESOURCEMANAGER_H
#define OHOS_RESOURCE_MANAGER_RESOURCEMANAGER_H

#include <map>
#include <string>
#include <vector>
#include <memory>

namespace OHOS {
namespace Global {
namespace Resource {
enum FunctionType {
    SYNC = 0,
    ASYNC = 1
};
class ResourceManager {
public:
    typedef struct {
        /** the raw file fd */
        int fd;

        /** the offset from where the raw file starts in the HAP */
        int64_t offset;

        /** the length of the raw file in the HAP. */
        int64_t length;
    } RawFileDescriptor;

    struct Resource {
        /** the hap bundle name */
        std::string bundleName;

        /** the hap module name */
        std::string moduleName;

        /** the resource id in hap */
        int32_t id;
    };

    enum class NapiValueType {
        NAPI_NUMBER = 0,
        NAPI_STRING = 1
    };

    ResourceManager() {}
    ~ResourceManager() {};
};

ResourceManager g_resourceManager;
ResourceManager *GetSystemResourceManagerNoSandBox()
{
    return &g_resourceManager;
}
} // namespace Resource
} // namespace Global
} // namespace OHOS

#endif