/* * Copyright (c) 2020 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. */ /** * @addtogroup BundleManager * @{ * * @brief Provides structures and functions for managing application bundles and obtaining application information. * * You can use functions provided by this module to install, update, or uninstall an application, obtain * {@link AbilityInfo} and {@link BundleInfo} about an application, and obtain the bundle name of an application based * on the application's user ID (UID). * * @since 1.0 * @version 1.0 */ /** * @file module_info.h * * @brief Declares structures and functions for managing HAP package information. * * The HAP package is used to deploy {@link Ability} instances. It is a module package consisting of the code, * resources, third-party libraries, and an application configuration file. You can use the function provided in this * file to clear HAP information. * * @since 1.0 * @version 1.0 */ #ifndef OHOS_BUNDLE_MODULE_INFO_H #define OHOS_BUNDLE_MODULE_INFO_H #include <stdbool.h> #include "stdint.h" #ifdef OHOS_APPEXECFWK_BMS_BUNDLEMANAGER #define DEVICE_TYPE_SIZE 16 #endif #define METADATA_SIZE 16 /** * @brief Defines the metadata information in a {@link ModuleInfo} object. */ typedef struct { /** Pointer to the metadata name */ char *name; /** Pointer to the metadata value */ char *value; /** Extra data. You can customize this field as required. */ char *extra; } MetaData; /** * @brief Defines the HAP information. */ typedef struct { /** Pointer to the HAP package name */ char *moduleName; #ifdef OHOS_APPEXECFWK_BMS_BUNDLEMANAGER /** Pointer to the description of the HAP package */ char *description; /** Pointer to the class name of the HAP package */ char *name; /** Type of the HAP package, either <b>Entry.hap</b> or <b>Feature.hap</b> */ char *moduleType; /** Whether the HAP package is installed while the user is installing the application */ bool isDeliveryInstall; /** * Pointer to the types of devices that can run the application. The maximum size of the device type array is * {@link DEVICE_TYPE_SIZE}. */ char *deviceType[DEVICE_TYPE_SIZE]; #endif /** Pointer to the metadata array whose maximum size is {@link METADATA_SIZE} */ MetaData *metaData[METADATA_SIZE]; } ModuleInfo; #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif // __cplusplus /** * @brief Clears a {@link ModuleInfo} object. * * This function clears and releases the memory occupied by the fields of the pointer type included in the specified * {@link ModuleInfo} object. * @param moduleInfo Indicates the pointer to the {@link ModuleInfo} object to clear. * * @since 1.0 * @version 1.0 */ void ClearModuleInfo(ModuleInfo *moduleInfo); #ifdef __cplusplus #if __cplusplus } #endif #endif // __cplusplus #endif // OHOS_BUNDLE_MODULE_INFO_H /** @} */