* 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.
*/
* @addtogroup UDMF
* @{
*
* @brief The Unified Data Management Framework(UDMF) aims to define various standards
* for data across applications, devices, and platforms, providing a unified OpenHarmony
* data language and standardized data access and reading paths.
*
* @syscap SystemCapability.DistributedDataManager.UDMF.Core
* @since 12
*/
* @file utd.h
*
* @brief Provides uniform type descriptor(UTD) related functions and struct.
*
* @kit ArkData
* @library libudmf.so
* @syscap SystemCapability.DistributedDataManager.UDMF.Core
* @since 12
*/
#ifndef UTD_H
#define UTD_H
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
* @brief Describes the unified data type descriptor.
*
* @since 12
*/
typedef struct OH_Utd OH_Utd;
* @brief Creates a pointer to the instance of the {@link OH_Utd}.
*
* @param typeId Represents type of UTD, reference udmf_meta.h.
* @return If the operation is successful, a pointer to the instance of the {@link OH_Utd}
* structure is returned.If the operation is failed, nullptr is returned.
* Must be destroyed with {@link OH_Utd_Destroy} when not needed.
* @see OH_Utd.
* @since 12
*/
OH_Utd* OH_Utd_Create(const char* typeId);
* @brief Destroy a pointer that points to the {@link OH_Utd} instance.
*
* @param pThis Represents a pointer to an instance of {@link OH_Utd}.
* @see OH_Utd.
* @since 12
*/
void OH_Utd_Destroy(OH_Utd* pThis);
* @brief Get type id from the {@link OH_Utd}.
*
* @param pThis Represents a pointer to an instance of {@link OH_Utd}.
* @return Returns a string pointer when input args normally, otherwise return nullptr.
* @see OH_Utd.
* @since 12
*/
const char* OH_Utd_GetTypeId(OH_Utd* pThis);
* @brief Get description from the {@link OH_Utd}.
*
* @param pThis Represents a pointer to an instance of {@link OH_Utd}.
* @return Returns a string pointer when input args normally, otherwise return nullptr.
* @see OH_Utd.
* @since 12
*/
const char* OH_Utd_GetDescription(OH_Utd* pThis);
* @brief Get url from the {@link OH_Utd}.
*
* @param pThis Represents a pointer to an instance of {@link OH_Utd}.
* @return Returns a string pointer when input args normally, otherwise return nullptr.
* @see OH_Utd.
* @since 12
*/
const char* OH_Utd_GetReferenceUrl(OH_Utd* pThis);
* @brief Get icon file from the {@link OH_Utd}.
*
* @param pThis Represents a pointer to an instance of {@link OH_Utd}.
* @return Returns a string pointer when input args normally, otherwise return nullptr.
* @see OH_Utd.
* @since 12
*/
const char* OH_Utd_GetIconFile(OH_Utd* pThis);
* @brief Get belong to type id of the current {@link OH_Utd}.
*
* @param pThis Represents a pointer to an instance of {@link OH_Utd}.
* @param count Represents the return types count.
* @return Returns string array when input args normally, otherwise return nullptr.
* @see OH_Utd.
* @since 12
*/
const char** OH_Utd_GetBelongingToTypes(OH_Utd* pThis, unsigned int* count);
* @brief Get filename extensions of the current {@link OH_Utd}.
*
* @param pThis Represents a pointer to an instance of {@link OH_Utd}.
* @param count Represents the return file extensions count.
* @return Returns string array when input args normally, otherwise return nullptr.
* @see OH_Utd.
* @since 12
*/
const char** OH_Utd_GetFilenameExtensions(OH_Utd* pThis, unsigned int* count);
* @brief Get mime types of the current {@link OH_Utd}.
*
* @param pThis Represents a pointer to an instance of {@link OH_Utd}.
* @param count Represents the mime types count.
* @return Returns string array when input args normally, otherwise return nullptr.
* @see OH_Utd.
* @since 12
*/
const char** OH_Utd_GetMimeTypes(OH_Utd* pThis, unsigned int* count);
* @brief Get type id by file name extension.
*
* @param extension Represents file name extension.
* @param count Represents the types count.
* @return Returns string list of types. Must be destroyed with {@link OH_Utd_DestroyStringList} when not needed.
* @since 12
*/
const char** OH_Utd_GetTypesByFilenameExtension(const char* extension, unsigned int* count);
* @brief Get type id by mime type.
*
* @param mimeType Represents mime type
* @param count Represents the types count.
* @return Returns string list of types. Must be destroyed with {@link OH_Utd_DestroyStringList} when not needed.
* @since 12
*/
const char** OH_Utd_GetTypesByMimeType(const char* mimeType, unsigned int* count);
* @brief Calculate relationships of two types.
*
* @param srcTypeId Represents source type id.
* @param destTypeId Represents target type id.
* @return Returns the status code of the execution.
* {@code false} Represents srcTypeId not belongs to destTypeId.
* {@code true} Represents srcTypeId belongs to destTypeId.
* @since 12
*/
bool OH_Utd_BelongsTo(const char* srcTypeId, const char* destTypeId);
* @brief Calculate relationships of two types.
*
* @param srcTypeId Represents source type id.
* @param destTypeId Represents target type id.
* @return Returns the status code of the execution.
* {@code false} Represents srcTypeId not lower level to destTypeId.
* {@code true} Represents srcTypeId lower level to destTypeId.
* @since 12
*/
bool OH_Utd_IsLower(const char* srcTypeId, const char* destTypeId);
* @brief Calculate relationships of two types.
*
* @param srcTypeId Represents source type id.
* @param destTypeId Represents target type id.
* @return Returns the status code of the execution.
* {@code false} Represents srcTypeId not higher level to destTypeId.
* {@code true} Represents srcTypeId higher level to destTypeId.
* @since 12
*/
bool OH_Utd_IsHigher(const char* srcTypeId, const char* destTypeId);
* @brief Calculate two {@link OH_Utd}s are equal.
*
* @param utd1 Represents a pointer to {@link OH_Utd} instance.
* @param utd2 Represents a pointer to {@link OH_Utd} instance.
* @return Returns the status code of the execution.
* {@code false} Represents utd1 and utd2 are not equal.
* {@code true} Represents utd1 and utd2 are equal.
* @since 12
*/
bool OH_Utd_Equals(OH_Utd* utd1, OH_Utd* utd2);
* @brief Destroy string list memory.
*
* @param list Represents a point to string list.
* @param count Represents string count in list.
* @since 12
*/
void OH_Utd_DestroyStringList(const char** list, unsigned int count);
#ifdef __cplusplus
};
#endif
#endif