17777dab0Sopenharmony_ci/*
27777dab0Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
37777dab0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47777dab0Sopenharmony_ci * you may not use this file except in compliance with the License.
57777dab0Sopenharmony_ci * You may obtain a copy of the License at
67777dab0Sopenharmony_ci *
77777dab0Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
87777dab0Sopenharmony_ci *
97777dab0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107777dab0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117777dab0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127777dab0Sopenharmony_ci * See the License for the specific language governing permissions and
137777dab0Sopenharmony_ci * limitations under the License.
147777dab0Sopenharmony_ci */
157777dab0Sopenharmony_ci
167777dab0Sopenharmony_ci/**
177777dab0Sopenharmony_ci * @addtogroup OH_CommonEvent
187777dab0Sopenharmony_ci * @{
197777dab0Sopenharmony_ci *
207777dab0Sopenharmony_ci * @brief Provides the APIs of common event service.
217777dab0Sopenharmony_ci *
227777dab0Sopenharmony_ci * @since 12
237777dab0Sopenharmony_ci */
247777dab0Sopenharmony_ci/**
257777dab0Sopenharmony_ci * @file oh_commonevent.h
267777dab0Sopenharmony_ci *
277777dab0Sopenharmony_ci * @brief Declares the APIs to subscribe and unsubscribe common event, and so on.
287777dab0Sopenharmony_ci *
297777dab0Sopenharmony_ci * @library libohcommonevent.so
307777dab0Sopenharmony_ci * @kit BasicServicesKit
317777dab0Sopenharmony_ci * @syscap SystemCapability.Notification.CommonEvent
327777dab0Sopenharmony_ci * @since 12
337777dab0Sopenharmony_ci * @version 1.0
347777dab0Sopenharmony_ci */
357777dab0Sopenharmony_ci
367777dab0Sopenharmony_ci#ifndef OH_COMMONEVENT_H
377777dab0Sopenharmony_ci#define OH_COMMONEVENT_H
387777dab0Sopenharmony_ci
397777dab0Sopenharmony_ci#include <stdint.h>
407777dab0Sopenharmony_ci
417777dab0Sopenharmony_ci#ifdef __cplusplus
427777dab0Sopenharmony_ciextern "C" {
437777dab0Sopenharmony_ci#endif
447777dab0Sopenharmony_ci
457777dab0Sopenharmony_ci/**
467777dab0Sopenharmony_ci * @brief Defines error codes.
477777dab0Sopenharmony_ci *
487777dab0Sopenharmony_ci * @since 12
497777dab0Sopenharmony_ci * @version 1.0
507777dab0Sopenharmony_ci */
517777dab0Sopenharmony_citypedef enum CommonEvent_ErrCode {
527777dab0Sopenharmony_ci    /** @error Execution successful. */
537777dab0Sopenharmony_ci    COMMONEVENT_ERR_OK = 0,
547777dab0Sopenharmony_ci
557777dab0Sopenharmony_ci    /** @error permission verification failed. */
567777dab0Sopenharmony_ci    COMMONEVENT_ERR_PERMISSION_ERROR = 201,
577777dab0Sopenharmony_ci
587777dab0Sopenharmony_ci    /** @error invalid input parameter. */
597777dab0Sopenharmony_ci    COMMONEVENT_ERR_INVALID_PARAMETER = 401,
607777dab0Sopenharmony_ci
617777dab0Sopenharmony_ci    /** @error IPC request failed to send. */
627777dab0Sopenharmony_ci    COMMONEVENT_ERR_SENDING_REQUEST_FAILED = 1500007,
637777dab0Sopenharmony_ci
647777dab0Sopenharmony_ci    /** @error Common event service not init. */
657777dab0Sopenharmony_ci    COMMONEVENT_ERR_INIT_UNDONE = 1500008,
667777dab0Sopenharmony_ci
677777dab0Sopenharmony_ci    /** @error The subscriber number exceed system specification */
687777dab0Sopenharmony_ci    COMMONEVENT_ERR_SUBSCRIBER_NUM_EXCEEDED = 1500010,
697777dab0Sopenharmony_ci
707777dab0Sopenharmony_ci    /** @error A memory allocation error occurs. */
717777dab0Sopenharmony_ci    COMMONEVENT_ERR_ALLOC_MEMORY_FAILED = 1500011,
727777dab0Sopenharmony_ci} CommonEvent_ErrCode;
737777dab0Sopenharmony_ci
747777dab0Sopenharmony_ci/**
757777dab0Sopenharmony_ci * @brief the information of the subscriber
767777dab0Sopenharmony_ci *
777777dab0Sopenharmony_ci * @since 12
787777dab0Sopenharmony_ci */
797777dab0Sopenharmony_citypedef struct CommonEvent_SubscribeInfo CommonEvent_SubscribeInfo;
807777dab0Sopenharmony_ci
817777dab0Sopenharmony_ci/**
827777dab0Sopenharmony_ci * @brief the subscriber of common event
837777dab0Sopenharmony_ci *
847777dab0Sopenharmony_ci * @since 12
857777dab0Sopenharmony_ci */
867777dab0Sopenharmony_citypedef void CommonEvent_Subscriber;
877777dab0Sopenharmony_ci
887777dab0Sopenharmony_ci/**
897777dab0Sopenharmony_ci * @brief the data of the commonEvent callback
907777dab0Sopenharmony_ci *
917777dab0Sopenharmony_ci * @since 12
927777dab0Sopenharmony_ci */
937777dab0Sopenharmony_citypedef struct CommonEvent_RcvData CommonEvent_RcvData;
947777dab0Sopenharmony_ci
957777dab0Sopenharmony_ci/**
967777dab0Sopenharmony_ci * @brief The description of the parameters in a common event callback data.
977777dab0Sopenharmony_ci *
987777dab0Sopenharmony_ci * @since 12
997777dab0Sopenharmony_ci */
1007777dab0Sopenharmony_citypedef void CommonEvent_Parameters;
1017777dab0Sopenharmony_ci
1027777dab0Sopenharmony_ci/**
1037777dab0Sopenharmony_ci * @brief Common event callback.
1047777dab0Sopenharmony_ci *
1057777dab0Sopenharmony_ci * @param data common event callback data.
1067777dab0Sopenharmony_ci * @since 12
1077777dab0Sopenharmony_ci */
1087777dab0Sopenharmony_citypedef void (*CommonEvent_ReceiveCallback)(const CommonEvent_RcvData *data);
1097777dab0Sopenharmony_ci
1107777dab0Sopenharmony_ci/**
1117777dab0Sopenharmony_ci * @brief Create subscribe information.
1127777dab0Sopenharmony_ci *
1137777dab0Sopenharmony_ci * @param events Indicates the subscribed events.
1147777dab0Sopenharmony_ci * @param eventsNum Indicates the subscribed events of number.
1157777dab0Sopenharmony_ci * @return Returns the CommonEvent_SubscribeInfo, if allocate memory failed, returns null.
1167777dab0Sopenharmony_ci * @since 12
1177777dab0Sopenharmony_ci */
1187777dab0Sopenharmony_ciCommonEvent_SubscribeInfo* OH_CommonEvent_CreateSubscribeInfo(const char* events[], int32_t eventsNum);
1197777dab0Sopenharmony_ci
1207777dab0Sopenharmony_ci/**
1217777dab0Sopenharmony_ci * @brief Set the subscribe information of permission.
1227777dab0Sopenharmony_ci *
1237777dab0Sopenharmony_ci * @param info Indicates the subscribed events.
1247777dab0Sopenharmony_ci * @param permission Indicates the subscribed events of permission.
1257777dab0Sopenharmony_ci * @return Returns the error code.
1267777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_OK} if the operation is successful.
1277777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_INVALID_PARAMETER} if a parameter error occurs.
1287777dab0Sopenharmony_ci * @since 12
1297777dab0Sopenharmony_ci */
1307777dab0Sopenharmony_ciCommonEvent_ErrCode OH_CommonEvent_SetPublisherPermission(CommonEvent_SubscribeInfo* info, const char* permission);
1317777dab0Sopenharmony_ci
1327777dab0Sopenharmony_ci/**
1337777dab0Sopenharmony_ci * @brief Set the subscribe information of bundleName.
1347777dab0Sopenharmony_ci *
1357777dab0Sopenharmony_ci * @param info Indicates the subscribed events.
1367777dab0Sopenharmony_ci * @param bundleName Indicates the subscribed events of bundleName.
1377777dab0Sopenharmony_ci * @return Returns the error code.
1387777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_OK} if the operation is successful.
1397777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_INVALID_PARAMETER} if a parameter error occurs.
1407777dab0Sopenharmony_ci * @since 12
1417777dab0Sopenharmony_ci */
1427777dab0Sopenharmony_ciCommonEvent_ErrCode OH_CommonEvent_SetPublisherBundleName(CommonEvent_SubscribeInfo* info, const char* bundleName);
1437777dab0Sopenharmony_ci
1447777dab0Sopenharmony_ci/**
1457777dab0Sopenharmony_ci * @brief Destroy the subscribe information.
1467777dab0Sopenharmony_ci *
1477777dab0Sopenharmony_ci * @param info Indicates the subscribe info.
1487777dab0Sopenharmony_ci * @since 12
1497777dab0Sopenharmony_ci */
1507777dab0Sopenharmony_civoid OH_CommonEvent_DestroySubscribeInfo(CommonEvent_SubscribeInfo* info);
1517777dab0Sopenharmony_ci
1527777dab0Sopenharmony_ci/**
1537777dab0Sopenharmony_ci * @brief Create a subscriber.
1547777dab0Sopenharmony_ci *
1557777dab0Sopenharmony_ci * @param info Indicates the created subscribe Info.
1567777dab0Sopenharmony_ci * @param callback Indicates the received common event callback.
1577777dab0Sopenharmony_ci * @return Returns the CommonEvent_Subscriber, if allocate memory failed, returns null.
1587777dab0Sopenharmony_ci * @since 12
1597777dab0Sopenharmony_ci */
1607777dab0Sopenharmony_ciCommonEvent_Subscriber* OH_CommonEvent_CreateSubscriber(const CommonEvent_SubscribeInfo* info,
1617777dab0Sopenharmony_ci    CommonEvent_ReceiveCallback callback);
1627777dab0Sopenharmony_ci
1637777dab0Sopenharmony_ci/**
1647777dab0Sopenharmony_ci * @brief Destory the subscriber.
1657777dab0Sopenharmony_ci *
1667777dab0Sopenharmony_ci * @param subscriber Indicates the created subscriber.
1677777dab0Sopenharmony_ci * @since 12
1687777dab0Sopenharmony_ci */
1697777dab0Sopenharmony_civoid OH_CommonEvent_DestroySubscriber(CommonEvent_Subscriber* subscriber);
1707777dab0Sopenharmony_ci
1717777dab0Sopenharmony_ci/**
1727777dab0Sopenharmony_ci * @brief Subscribe event by a subscriber.
1737777dab0Sopenharmony_ci *
1747777dab0Sopenharmony_ci * @param subscriber Indicates the subscriber.
1757777dab0Sopenharmony_ci * @return Returns the error code.
1767777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_OK} if the operation is successful.
1777777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_INVALID_PARAMETER } if the input parameter is invalid.
1787777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_SENDING_REQUEST_FAILED } if IPC request failed to send.
1797777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_INIT_UNDONE } if ces not init done.
1807777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_SUBSCRIBER_NUM_EXCEEDED } if the subscriber number is exceeded.
1817777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_ALLOC_MEMORY_FAILED } if a memory allocation error occurs.
1827777dab0Sopenharmony_ci * @since 12
1837777dab0Sopenharmony_ci */
1847777dab0Sopenharmony_ciCommonEvent_ErrCode OH_CommonEvent_Subscribe(const CommonEvent_Subscriber* subscriber);
1857777dab0Sopenharmony_ci
1867777dab0Sopenharmony_ci/**
1877777dab0Sopenharmony_ci * @brief Unsubscribe event by a subscriber.
1887777dab0Sopenharmony_ci *
1897777dab0Sopenharmony_ci * @param subscriber Indicates the subscriber.
1907777dab0Sopenharmony_ci * @return Returns the error code.
1917777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_OK} if the operation is successful.
1927777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_INVALID_PARAMETER } if the input parameter is invalid.
1937777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_SENDING_REQUEST_FAILED } if IPC request failed to send.
1947777dab0Sopenharmony_ci *         Returns {@link COMMONEVENT_ERR_INIT_UNDONE } if ces not init done.
1957777dab0Sopenharmony_ci * @since 12
1967777dab0Sopenharmony_ci */
1977777dab0Sopenharmony_ciCommonEvent_ErrCode OH_CommonEvent_UnSubscribe(const CommonEvent_Subscriber* subscriber);
1987777dab0Sopenharmony_ci
1997777dab0Sopenharmony_ci/**
2007777dab0Sopenharmony_ci * @brief Get event name from callback data.
2017777dab0Sopenharmony_ci *
2027777dab0Sopenharmony_ci * @param rcvData Indicates the event of callback data.
2037777dab0Sopenharmony_ci * @return Returns the event name.
2047777dab0Sopenharmony_ci * @since 12
2057777dab0Sopenharmony_ci */
2067777dab0Sopenharmony_ciconst char* OH_CommonEvent_GetEventFromRcvData(const CommonEvent_RcvData* rcvData);
2077777dab0Sopenharmony_ci
2087777dab0Sopenharmony_ci/**
2097777dab0Sopenharmony_ci * @brief Get event result code from callback data.
2107777dab0Sopenharmony_ci *
2117777dab0Sopenharmony_ci * @param rcvData Indicates the event of callback data.
2127777dab0Sopenharmony_ci * @return Returns the event of result code, default is 0.
2137777dab0Sopenharmony_ci * @since 12
2147777dab0Sopenharmony_ci */
2157777dab0Sopenharmony_ciint32_t OH_CommonEvent_GetCodeFromRcvData(const CommonEvent_RcvData* rcvData);
2167777dab0Sopenharmony_ci
2177777dab0Sopenharmony_ci/**
2187777dab0Sopenharmony_ci * @brief Get event result data from callback data.
2197777dab0Sopenharmony_ci *
2207777dab0Sopenharmony_ci * @param rcvData Indicates the event of callback data.
2217777dab0Sopenharmony_ci * @return Returns the event of result data, default is null.
2227777dab0Sopenharmony_ci * @since 12
2237777dab0Sopenharmony_ci */
2247777dab0Sopenharmony_ciconst char* OH_CommonEvent_GetDataStrFromRcvData(const CommonEvent_RcvData* rcvData);
2257777dab0Sopenharmony_ci
2267777dab0Sopenharmony_ci/**
2277777dab0Sopenharmony_ci * @brief Get event bundlename from callback data.
2287777dab0Sopenharmony_ci *
2297777dab0Sopenharmony_ci * @param rcvData Indicates the event of callback data.
2307777dab0Sopenharmony_ci * @return Returns the event of bundlename, default is null.
2317777dab0Sopenharmony_ci * @since 12
2327777dab0Sopenharmony_ci */
2337777dab0Sopenharmony_ciconst char* OH_CommonEvent_GetBundleNameFromRcvData(const CommonEvent_RcvData* rcvData);
2347777dab0Sopenharmony_ci
2357777dab0Sopenharmony_ci/**
2367777dab0Sopenharmony_ci * @brief Get event parameters data from callback data.
2377777dab0Sopenharmony_ci *
2387777dab0Sopenharmony_ci * @param rcvData Indicates the event of callback data.
2397777dab0Sopenharmony_ci * @return Returns the event of parameters data, default is null.
2407777dab0Sopenharmony_ci * @since 12
2417777dab0Sopenharmony_ci */
2427777dab0Sopenharmony_ciconst CommonEvent_Parameters* OH_CommonEvent_GetParametersFromRcvData(const CommonEvent_RcvData* rcvData);
2437777dab0Sopenharmony_ci
2447777dab0Sopenharmony_ci/**
2457777dab0Sopenharmony_ci * @brief Check whether the parameters contains a key.
2467777dab0Sopenharmony_ci *
2477777dab0Sopenharmony_ci * @param rcvData Indicates the event of callback data.
2487777dab0Sopenharmony_ci * @param key Indicates the key of parameter.
2497777dab0Sopenharmony_ci * @return Returns the result of check, true means it contains.
2507777dab0Sopenharmony_ci * @since 12
2517777dab0Sopenharmony_ci */
2527777dab0Sopenharmony_cibool OH_CommonEvent_HasKeyInParameters(const CommonEvent_Parameters* para, const char* key);
2537777dab0Sopenharmony_ci
2547777dab0Sopenharmony_ci/**
2557777dab0Sopenharmony_ci * @brief Get int data from parameters data by key.
2567777dab0Sopenharmony_ci *
2577777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
2587777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
2597777dab0Sopenharmony_ci * @param defaultValue Indicates default return value.
2607777dab0Sopenharmony_ci * @return Returns the int data of the key in the parameters.
2617777dab0Sopenharmony_ci * @since 12
2627777dab0Sopenharmony_ci */
2637777dab0Sopenharmony_ciint OH_CommonEvent_GetIntFromParameters(const CommonEvent_Parameters* para, const char* key, const int defaultValue);
2647777dab0Sopenharmony_ci
2657777dab0Sopenharmony_ci/**
2667777dab0Sopenharmony_ci * @brief Get int array data from parameters data by key.
2677777dab0Sopenharmony_ci *
2687777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
2697777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
2707777dab0Sopenharmony_ci * @param array Indicates the int array.
2717777dab0Sopenharmony_ci * @return Returns the length of the array.
2727777dab0Sopenharmony_ci * @since 12
2737777dab0Sopenharmony_ci */
2747777dab0Sopenharmony_ciint32_t OH_CommonEvent_GetIntArrayFromParameters(const CommonEvent_Parameters* para, const char* key, int** array);
2757777dab0Sopenharmony_ci
2767777dab0Sopenharmony_ci/**
2777777dab0Sopenharmony_ci * @brief Get long data from parameters data by key.
2787777dab0Sopenharmony_ci *
2797777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
2807777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
2817777dab0Sopenharmony_ci * @param defaultValue Indicates default return value.
2827777dab0Sopenharmony_ci * @return Returns the long data of the key in the parameters.
2837777dab0Sopenharmony_ci * @since 12
2847777dab0Sopenharmony_ci */
2857777dab0Sopenharmony_cilong OH_CommonEvent_GetLongFromParameters(const CommonEvent_Parameters* para, const char* key, const long defaultValue);
2867777dab0Sopenharmony_ci
2877777dab0Sopenharmony_ci/**
2887777dab0Sopenharmony_ci * @brief Get long array data from parameters data by key.
2897777dab0Sopenharmony_ci *
2907777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
2917777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
2927777dab0Sopenharmony_ci * @param array Indicates the long array.
2937777dab0Sopenharmony_ci * @return Returns the length of the array.
2947777dab0Sopenharmony_ci * @since 12
2957777dab0Sopenharmony_ci */
2967777dab0Sopenharmony_ciint32_t OH_CommonEvent_GetLongArrayFromParameters(const CommonEvent_Parameters* para, const char* key, long** array);
2977777dab0Sopenharmony_ci
2987777dab0Sopenharmony_ci/**
2997777dab0Sopenharmony_ci * @brief Get bool data from parameters data by key.
3007777dab0Sopenharmony_ci *
3017777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
3027777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
3037777dab0Sopenharmony_ci * @param defaultValue Indicates default return value.
3047777dab0Sopenharmony_ci * @return Returns the bool data of the key in the parameters.
3057777dab0Sopenharmony_ci * @since 12
3067777dab0Sopenharmony_ci */
3077777dab0Sopenharmony_cibool OH_CommonEvent_GetBoolFromParameters(const CommonEvent_Parameters* para, const char* key, const bool defaultValue);
3087777dab0Sopenharmony_ci
3097777dab0Sopenharmony_ci/**
3107777dab0Sopenharmony_ci * @brief Get bool array data from parameters data by key.
3117777dab0Sopenharmony_ci *
3127777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
3137777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
3147777dab0Sopenharmony_ci * @param array Indicates the bool array.
3157777dab0Sopenharmony_ci * @return Returns the length of the array.
3167777dab0Sopenharmony_ci * @since 12
3177777dab0Sopenharmony_ci */
3187777dab0Sopenharmony_ciint32_t OH_CommonEvent_GetBoolArrayFromParameters(const CommonEvent_Parameters* para, const char* key, bool** array);
3197777dab0Sopenharmony_ci
3207777dab0Sopenharmony_ci/**
3217777dab0Sopenharmony_ci * @brief Get char data from parameters data by key.
3227777dab0Sopenharmony_ci *
3237777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
3247777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
3257777dab0Sopenharmony_ci * @param defaultValue Indicates default return value.
3267777dab0Sopenharmony_ci * @return Returns the char data of the key in the parameters.
3277777dab0Sopenharmony_ci * @since 12
3287777dab0Sopenharmony_ci */
3297777dab0Sopenharmony_cichar OH_CommonEvent_GetCharFromParameters(const CommonEvent_Parameters* para, const char* key, const char defaultValue);
3307777dab0Sopenharmony_ci
3317777dab0Sopenharmony_ci/**
3327777dab0Sopenharmony_ci * @brief Get char array data from parameters data by key.
3337777dab0Sopenharmony_ci *
3347777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
3357777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
3367777dab0Sopenharmony_ci * @param array Indicates the char array.
3377777dab0Sopenharmony_ci * @return Returns the length of the array.
3387777dab0Sopenharmony_ci * @since 12
3397777dab0Sopenharmony_ci */
3407777dab0Sopenharmony_ciint32_t OH_CommonEvent_GetCharArrayFromParameters(const CommonEvent_Parameters* para, const char* key, char** array);
3417777dab0Sopenharmony_ci
3427777dab0Sopenharmony_ci/**
3437777dab0Sopenharmony_ci * @brief Get double data from parameters data by key.
3447777dab0Sopenharmony_ci *
3457777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
3467777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
3477777dab0Sopenharmony_ci * @param defaultValue Indicates default return value.
3487777dab0Sopenharmony_ci * @return Returns the double data of the key in the parameters.
3497777dab0Sopenharmony_ci * @since 12
3507777dab0Sopenharmony_ci */
3517777dab0Sopenharmony_cidouble OH_CommonEvent_GetDoubleFromParameters(const CommonEvent_Parameters* para, const char* key,
3527777dab0Sopenharmony_ci    const double defaultValue);
3537777dab0Sopenharmony_ci
3547777dab0Sopenharmony_ci/**
3557777dab0Sopenharmony_ci * @brief Get double array data from parameters data by key.
3567777dab0Sopenharmony_ci *
3577777dab0Sopenharmony_ci * @param rcvData Indicates the event of parameters data.
3587777dab0Sopenharmony_ci * @param key Indicates the key of parameters data.
3597777dab0Sopenharmony_ci * @param array Indicates the double array.
3607777dab0Sopenharmony_ci * @return Returns the length of the array, default is 0.
3617777dab0Sopenharmony_ci * @since 12
3627777dab0Sopenharmony_ci */
3637777dab0Sopenharmony_ciint32_t OH_CommonEvent_GetDoubleArrayFromParameters(const CommonEvent_Parameters* para, const char* key,
3647777dab0Sopenharmony_ci    double** array);
3657777dab0Sopenharmony_ci
3667777dab0Sopenharmony_ci#ifdef __cplusplus
3677777dab0Sopenharmony_ci}
3687777dab0Sopenharmony_ci#endif
3697777dab0Sopenharmony_ci#endif // OH_COMMONEVENT_H
3707777dab0Sopenharmony_ci/** @} */
371