GGiteeupdate
8fc04875创建于 2025年2月25日历史提交

udmf.h

概述

提供访问统一数据管理框架数据的接口、数据结构、枚举类型。

引用文件:<database/udmf/udmf.h>

库: libudmf.so

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

起始版本: 12

相关模块:UDMF

汇总

宏定义

名称 描述
UDMF_KEY_BUFFER_LEN   (512) 统一数据对象唯一标识符最小空间长度。

类型定义

名称 描述
typedef enum Udmf_Intention Udmf_Intention 描述UDMF数据通路枚举类型。
typedef enum Udmf_ShareOption Udmf_ShareOption UDMF支持的设备内使用范围类型枚举。
typedef enum Udmf_FileConflictOptions Udmf_FileConflictOptions 定义文件拷贝冲突时的选项。
typedef enum Udmf_ProgressIndicator Udmf_ProgressIndicator 定义进度条指示选项,可选择是否采用系统默认进度显示。
typedef struct OH_UdmfData OH_UdmfData 定义统一数据对象数据结构。
typedef struct OH_UdmfRecord OH_UdmfRecord 定义统一数据对象中记录数据的数据结构,称为数据记录。
typedef struct OH_UdmfRecordProvider OH_UdmfRecordProvider 定义统一数据对象中的数据提供者。
typedef struct OH_UdmfProperty OH_UdmfProperty 定义统一数据对象中数据记录的属性结构。
typedef struct OH_Udmf_ProgressInfo OH_Udmf_ProgressInfo 定义进度信息的数据结构。
typedef struct OH_UdmfGetDataParams OH_UdmfGetDataParams 定义异步获取UDMF数据的请求参数。
typedef void(* OH_Udmf_DataProgressListener) (OH_Udmf_ProgressInfo *progressInfo, OH_UdmfData *data) 定义获取进度信息和数据的监听回调函数。
使用时需要判断数据是否返回空指针。只有当进度达到100时,才会返回数据。
typedef void(* UdmfData_Finalize) (void *context) 定义用于释放上下文的回调函数,统一数据提供者对象销毁时触发。
typedef void *(* OH_UdmfRecordProvider_GetData) (void *context, const char *type) 定义用于按类型获取数据的回调函数。 当从OH_UdmfRecord中获取数据时,会触发此回调函数,得到的数据就是这个回调函数返回的数据。

枚举

名称 描述
Udmf_Intention { UDMF_INTENTION_DRAG, UDMF_INTENTION_PASTEBOARD } 描述UDMF数据通路枚举类型。
Udmf_ShareOption { SHARE_OPTIONS_INVALID, SHARE_OPTIONS_IN_APP, SHARE_OPTIONS_CROSS_APP } UDMF支持的设备内使用范围类型枚举。
Udmf_FileConflictOptions { UDMF_OVERWRITE = 0, UDMF_SKIP = 1 } 定义文件拷贝冲突时的选项。
Udmf_ProgressIndicator { UDMF_NONE = 0, UDMF_DEFAULT = 1 } 定义进度条指示选项,可选择是否采用系统默认进度显示。

函数

名称 描述
OH_UdmfData * OH_UdmfData_Create () 创建统一数据对象OH_UdmfData指针及实例对象。 当不再需要使用指针时,请使用OH_UdmfData_Destroy销毁实例对象,否则会导致内存泄漏。
void OH_UdmfData_Destroy (OH_UdmfData *pThis) 销毁统一数据对象OH_UdmfData指针指向的实例对象。
int OH_UdmfData_AddRecord (OH_UdmfData *pThis, OH_UdmfRecord *record) 添加一个数据记录OH_UdmfRecord到统一数据对象OH_UdmfData中。
bool OH_UdmfData_HasType (OH_UdmfData *pThis, const char *type) 检查统一数据对象OH_UdmfData中是否存在指定类型。
char ** OH_UdmfData_GetTypes (OH_UdmfData *pThis, unsigned int *count) 获取统一数据对象OH_UdmfData中包含的所有类型结果集。
OH_UdmfRecord ** OH_UdmfData_GetRecords (OH_UdmfData *pThis, unsigned int *count) 获取统一数据对象OH_UdmfData中包含的所有记录结果集。
OH_UdmfRecordProvider * OH_UdmfRecordProvider_Create () 创建一个统一数据提供者OH_UdmfRecordProvider指针及实例对象。 当不再需要使用指针时,请使用OH_UdmfRecordProvider_Destroy销毁实例对象,否则会导致内存泄漏。
int OH_UdmfRecordProvider_Destroy (OH_UdmfRecordProvider *provider) 销毁统一数据提供者OH_UdmfRecordProvider指针指向的实例对象。
int OH_UdmfRecordProvider_SetData (OH_UdmfRecordProvider *provider, void *context, const OH_UdmfRecordProvider_GetData callback, const UdmfData_Finalize finalize) 设置统一数据提供者的数据提供回调函数。
OH_UdmfRecord * OH_UdmfRecord_Create () 创建统一数据记录OH_UdmfRecord指针及实例对象。 当不再需要使用指针时,请使用OH_UdmfRecord_Destroy销毁实例对象,否则会导致内存泄漏。
void OH_UdmfRecord_Destroy (OH_UdmfRecord *pThis) 销毁统一数据记录OH_UdmfRecord指针指向的实例对象。
int OH_UdmfRecord_AddGeneralEntry (OH_UdmfRecord *pThis, const char *typeId, unsigned char *entry, unsigned int count) 添加用户自定义的通用数据至统一数据记录OH_UdmfRecord中。 对于已定义UDS的类型(比如PlainText、Link、Pixelmap等)不可使用该接口。
int OH_UdmfRecord_AddPlainText (OH_UdmfRecord *pThis, OH_UdsPlainText *plainText) 增加纯文本类型OH_UdsPlainText数据至统一数据记录OH_UdmfRecord中。
int OH_UdmfRecord_AddHyperlink (OH_UdmfRecord *pThis, OH_UdsHyperlink *hyperlink) 增加超链接类型OH_UdsHyperlink数据至统一数据记录OH_UdmfRecord中。
int OH_UdmfRecord_AddHtml (OH_UdmfRecord *pThis, OH_UdsHtml *html) 增加超文本标记语言类型OH_UdsHtml数据至统一数据记录OH_UdmfRecord中。
int OH_UdmfRecord_AddAppItem (OH_UdmfRecord *pThis, OH_UdsAppItem *appItem) 增加桌面图标类型OH_UdsAppItem数据至统一数据记录OH_UdmfRecord中。
int OH_UdmfRecord_AddFileUri (OH_UdmfRecord *pThis, OH_UdsFileUri *fileUri) 增加文件Uri类型OH_UdsFileUri数据至统一数据记录OH_UdmfRecord中。
int OH_UdmfRecord_AddPixelMap (OH_UdmfRecord *pThis, OH_UdsPixelMap *pixelMap) 增加像素图片类型OH_UdsPixelMap数据至统一数据记录OH_UdmfRecord中。
int OH_UdmfRecord_AddArrayBuffer (OH_UdmfRecord *record, const char *type, OH_UdsArrayBuffer *buffer) 增加一个ArrayBuffer类型OH_UdsArrayBuffer的数据至统一数据记录OH_UdmfRecord中。
int OH_UdmfRecord_AddContentForm (OH_UdmfRecord *pThis, OH_UdsContentForm *contentForm) 增加一个内容卡片类型OH_UdsContentForm的数据至统一数据记录OH_UdmfRecord中。
char ** OH_UdmfRecord_GetTypes (OH_UdmfRecord *pThis, unsigned int *count) 获取统一数据记录OH_UdmfRecord中所有类型的结果集。
int OH_UdmfRecord_GetGeneralEntry (OH_UdmfRecord *pThis, const char *typeId, unsigned char **entry, unsigned int *count) 获取统一数据记录OH_UdmfRecord中的特定类型的数据结果集。
int OH_UdmfRecord_GetPlainText (OH_UdmfRecord *pThis, OH_UdsPlainText *plainText) 从统一数据记录OH_UdmfRecord中获取纯文本类型OH_UdsPlainText数据。
int OH_UdmfRecord_GetHyperlink (OH_UdmfRecord *pThis, OH_UdsHyperlink *hyperlink) 从统一数据记录OH_UdmfRecord中获取超链接类型OH_UdsHyperlink数据。
int OH_UdmfRecord_GetHtml (OH_UdmfRecord *pThis, OH_UdsHtml *html) 从统一数据记录OH_UdmfRecord中获取超文本标记语言类型OH_UdsHtml数据。
int OH_UdmfRecord_GetAppItem (OH_UdmfRecord *pThis, OH_UdsAppItem *appItem) 从统一数据记录OH_UdmfRecord中获取桌面图标类型OH_UdsAppItem数据。
int OH_UdmfRecord_SetProvider (OH_UdmfRecord *pThis, const char *const *types, unsigned int count, OH_UdmfRecordProvider *provider) 将指定类型的统一数据提供者OH_UdmfRecordProvider设置至统一数据记录OH_UdmfRecord中。
int OH_UdmfRecord_GetFileUri (OH_UdmfRecord *pThis, OH_UdsFileUri *fileUri) 从统一数据记录OH_UdmfRecord中获取文件Uri类型OH_UdsFileUri数据。
int OH_UdmfRecord_GetPixelMap (OH_UdmfRecord *pThis, OH_UdsPixelMap *pixelMap) 从统一数据记录OH_UdmfRecord中获取像素图片类型OH_UdsPixelMap数据。
int OH_UdmfRecord_GetArrayBuffer (OH_UdmfRecord *record, const char *type, OH_UdsArrayBuffer *buffer) 从统一数据记录OH_UdmfRecord中获取ArrayBuffer类型OH_UdsArrayBuffer数据。
int OH_UdmfRecord_GetContentForm (OH_UdmfRecord *pThis, OH_UdsContentForm *contentForm) 从统一数据记录OH_UdmfRecord中获取内容卡片类型OH_UdsContentForm数据。
int OH_UdmfData_GetPrimaryPlainText (OH_UdmfData *data, OH_UdsPlainText *plainText) 从统一数据对象OH_UdmfData中获取第一个纯文本类型OH_UdsPlainText数据。
int OH_UdmfData_GetPrimaryHtml (OH_UdmfData *data, OH_UdsHtml *html) 从统一数据对象OH_UdmfData中获取第一个超文本标记语言类型OH_UdsHtml数据。
int OH_UdmfData_GetRecordCount (OH_UdmfData *data) 获取统一数据对象OH_UdmfData中包含的所有记录数量。
OH_UdmfRecord * OH_UdmfData_GetRecord (OH_UdmfData *data, unsigned int index) 获取统一数据对象OH_UdmfData中指定位置的数据记录。
bool OH_UdmfData_IsLocal (OH_UdmfData *data) 检查统一数据对象OH_UdmfData是否是来自本端设备的数据。
OH_UdmfProperty * OH_UdmfProperty_Create (OH_UdmfData *unifiedData) 创建统一数据对象中数据记录属性OH_UdmfProperty指针及实例对象。 当不再需要使用指针时,请使用OH_UdmfProperty_Destroy销毁实例对象,否则会导致内存泄漏。
void OH_UdmfProperty_Destroy (OH_UdmfProperty *pThis) 销毁数据属性OH_UdmfProperty指针指向的实例对象。
const char * OH_UdmfProperty_GetTag (OH_UdmfProperty *pThis) 从数据属性OH_UdmfProperty中获取用户自定义标签值。
int64_t OH_UdmfProperty_GetTimestamp (OH_UdmfProperty *pThis) 从数据属性OH_UdmfProperty中获取时间戳。
Udmf_ShareOption OH_UdmfProperty_GetShareOption (OH_UdmfProperty *pThis) 从数据属性OH_UdmfProperty中获取设备内适用范围属性。
int OH_UdmfProperty_GetExtrasIntParam (OH_UdmfProperty *pThis, const char *key, int defaultValue) 从数据属性OH_UdmfProperty中获取自定义的附加整型参数。
const char * OH_UdmfProperty_GetExtrasStringParam (OH_UdmfProperty *pThis, const char *key) 从数据属性OH_UdmfProperty中获取自定义的附加字符串参数。
int OH_UdmfProperty_SetTag (OH_UdmfProperty *pThis, const char *tag) 设置数据属性OH_UdmfProperty的自定义标签值。
int OH_UdmfProperty_SetShareOption (OH_UdmfProperty *pThis, Udmf_ShareOption option) 设置数据属性OH_UdmfProperty的设备内适用范围OH_Udmf_ShareOption参数。
int OH_UdmfProperty_SetExtrasIntParam (OH_UdmfProperty *pThis, const char *key, int param) 设置数据属性OH_UdmfProperty的附加整型参数。
int OH_UdmfProperty_SetExtrasStringParam (OH_UdmfProperty *pThis, const char *key, const char *param) 设置数据属性OH_UdmfProperty的附加字符串参数。
int OH_Udmf_GetUnifiedData (const char *key, Udmf_Intention intention, OH_UdmfData *unifiedData) 从统一数据管理框架数据库中获取统一数据对象OH_UdmfData数据。
int OH_Udmf_SetUnifiedData (Udmf_Intention intention, OH_UdmfData *unifiedData, char *key, unsigned int keyLen) 从统一数据管理框架数据库中写入统一数据对象OH_UdmfData数据。
int OH_UdmfProgressInfo_GetProgress (OH_Udmf_ProgressInfo *progressInfo) 从进度信息OH_Udmf_ProgressInfo中获取进度百分比数据。
int OH_UdmfProgressInfo_GetStatus (OH_Udmf_ProgressInfo *progressInfo) 从进度信息OH_Udmf_ProgressInfo中获取状态信息。
OH_UdmfGetDataParams * OH_UdmfGetDataParams_Create () 创建异步获取UDMF数据的请求参数OH_UdmfGetDataParams指针及实例对象。
当不再需要使用指针时,请使用OH_UdmfGetDataParams_Destroy销毁实例对象,否则会导致内存泄漏。
void OH_UdmfGetDataParams_Destroy (OH_UdmfGetDataParams *pThis) 销毁异步请求参数OH_UdmfGetDataParams指针指向的实例对象。
void OH_UdmfGetDataParams_SetDestUri (OH_UdmfGetDataParams *params, const char *destUri) 设置异步请求参数OH_UdmfGetDataParams中的目标路径。
若设置了目标路径,会将文件类型的数据进行拷贝到指定路径。回调中获取到的文件类型数据会被替换为目标路径的URI。
若不设置目标路径,则不会执行拷贝文件操作。回调中获取到的文件类型数据为源端路径URI。
若应用涉及复杂文件处理策略,或需要将文件拷贝在多个路径下时,建议不设置此参数,由应用自行完成文件拷贝相关处理。
void OH_UdmfGetDataParams_SetFileConflictOptions (OH_UdmfGetDataParams *params, const Udmf_FileConflictOptions options) 设置异步请求参数OH_UdmfGetDataParams中的文件冲突选项。
void OH_UdmfGetDataParams_SetProgressIndicator (OH_UdmfGetDataParams *params, const Udmf_ProgressIndicator progressIndicator) 设置异步请求参数OH_UdmfGetDataParams中的进度条指示选项。
void OH_UdmfGetDataParams_SetDataProgressListener (OH_UdmfGetDataParams *params, const OH_Udmf_DataProgressListener dataProgressListener) 设置异步请求参数OH_UdmfGetDataParams中的监听回调函数。