diff --git a/backgroundtasks/transient/include/transient_task_api.h b/backgroundtasks/transient/include/transient_task_api.h index 874e6473412e80b3b68cfffa268e78dde2c27ecc..f6ce7b65929ee41f1a59318c332a5edaeb01b555 100644 --- a/backgroundtasks/transient/include/transient_task_api.h +++ b/backgroundtasks/transient/include/transient_task_api.h @@ -100,6 +100,19 @@ int32_t OH_BackgroundTaskManager_GetRemainingDelayTime(int32_t requestId, int32_ */ int32_t OH_BackgroundTaskManager_CancelSuspendDelay(int32_t requestId); +/** + * @brief Obtains all the transient task. + * + * @param transientTaskInfo Indicates the transient task info of an application. + * @return {@link ERR_TRANSIENT_TASK_OK} 0 - Success. + * {@link ERR_TRANSIENT_TASK_CLIENT_INFO_VERIFICATION_FAILED} 9900001 - uid or pid info verify failed. + * {@link ERR_TRANSIENT_TASK_PARCELABLE_FAILED} 9900003 - Failed to write data into parcel. + * {@link ERR_TRANSIENT_TASK_SERVICE_NOT_READY} 9900004 - System service operation failed. + * @since 20 + * @version 1.0 + */ +int32_t OH_BackgroundTaskManager_GetAllTransientTasks(TransientTask_TransientTaskInfo *transientTaskInfo); + #ifdef __cplusplus } #endif diff --git a/backgroundtasks/transient/include/transient_task_type.h b/backgroundtasks/transient/include/transient_task_type.h index 7a19adf75c8050b3d4c23f5eec1dc1a8ab00b183..237da3a12e8307f7aa616f524cb70eeb1e5624f8 100644 --- a/backgroundtasks/transient/include/transient_task_type.h +++ b/backgroundtasks/transient/include/transient_task_type.h @@ -41,6 +41,14 @@ #ifdef __cplusplus extern "C" { #endif + +/** + * @brief max number for transient task. + * + * @since 20 + */ +#define TRANSIENT_TASK_MAX_NUM 3 + /** * @brief Enum for transient task error code. * @since 13 @@ -76,6 +84,16 @@ typedef enum TransientTask_ErrorCode { * Transient task verification failed. */ ERR_TRANSIENT_TASK_SERVICE_VERIFICATION_FAILED = 9900002, + /** + * @error Failed to write data into parcel. Possible reasons: + * 1. Invalid parameters; + * 2. Failed to apply for memory. + */ + ERR_TRANSIENT_TASK_PARCELABLE_FAILED = 9900003, + /** + * @error System service operation failed. + */ + ERR_TRANSIENT_TASK_SERVICE_NOT_READY = 9900004, } TransientTask_ErrorCode; /** @@ -91,6 +109,19 @@ typedef struct TransientTask_DelaySuspendInfo { int32_t actualDelayTime; } TransientTask_DelaySuspendInfo; +/** + * @brief Define TransientTaskInfo for an application. + * + * @since 20 + * @version 1.0 + */ +typedef struct TransientTask_TransientTaskInfo { + /** The remaining quota of the delay request */ + int32_t remainingQuota; + /** The info of delay suspend */ + TransientTask_DelaySuspendInfo transientTasks[TRANSIENT_TASK_MAX_NUM]; +} TransientTask_TransientTaskInfo; + /** * @brief Define a callback function when delay time expired. * @since 13 diff --git a/backgroundtasks/transient/libtransient_task.ndk.json b/backgroundtasks/transient/libtransient_task.ndk.json index df952bfe1d139048cdf28ba8f1a65bbfec7dbb7f..5d777b0199821083afb17eec109e90fe93bcb50e 100644 --- a/backgroundtasks/transient/libtransient_task.ndk.json +++ b/backgroundtasks/transient/libtransient_task.ndk.json @@ -10,5 +10,9 @@ { "first_introduced": "13", "name": "OH_BackgroundTaskManager_CancelSuspendDelay" + }, + { + "first_introduced": "20", + "name": "OH_BackgroundTaskManager_GetAllTransientTasks" } ] \ No newline at end of file