1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef COMMON_EVENT_MANAGER_FFI_H
17 #define COMMON_EVENT_MANAGER_FFI_H
18 
19 #include "ffi_remote_data.h"
20 #include "cj_common_ffi.h"
21 #include "common_event_defination.h"
22 
23 #include <cstdint>
24 
25 extern "C"
26 {
27     // CommonEventManager ffi apis
28     FFI_EXPORT int32_t CJ_PublishEvent(char *event, int32_t userId);
29     FFI_EXPORT int32_t CJ_PublishEventWithData(char *event, int32_t userId, CommonEventPublishDataBycj options);
30     FFI_EXPORT int32_t CJ_SetStaticSubscriberState(bool enable);
31     FFI_EXPORT int32_t CJ_RemoveStickyCommonEvent(char *event);
32     FFI_EXPORT int64_t CJ_CreateCommonEventSubscribeInfo(CArrString events);
33     FFI_EXPORT int64_t CJ_CreateSubscriber(int64_t id);
34     FFI_EXPORT int32_t CJ_Subscribe(int64_t id, void (*callbackRef)(const CCommonEventData data));
35     FFI_EXPORT int32_t CJ_Unsubscribe(int64_t id);
36 
37     FFI_EXPORT RetDataI64 CJ_GetCode(int64_t id);
38     FFI_EXPORT int32_t CJ_SetCode(int64_t id, int32_t code);
39     FFI_EXPORT RetDataCString CJ_GetData(int64_t id);
40     FFI_EXPORT int32_t CJ_SetData(int64_t id, char *data);
41     FFI_EXPORT int32_t CJ_SetCodeAndData(int64_t id, int32_t code, char *data);
42 
43     // subscriber properties
44     FFI_EXPORT RetDataI64 CJ_GetCode(int64_t id);
45     FFI_EXPORT int32_t CJ_SetCode(int64_t id, int32_t code);
46     FFI_EXPORT RetDataCString CJ_GetData(int64_t id);
47     FFI_EXPORT int32_t CJ_SetData(int64_t id, char *data);
48     FFI_EXPORT int32_t CJ_SetCodeAndData(int64_t id, int32_t code, char *data);
49     FFI_EXPORT RetDataBool CJ_IsOrderedCommonEvent(int64_t id);
50     FFI_EXPORT RetDataBool CJ_IsStickyCommonEvent(int64_t id);
51     FFI_EXPORT int32_t CJ_AbortCommonEvent(int64_t id);
52     FFI_EXPORT int32_t CJ_ClearAbortCommonEvent(int64_t id);
53     FFI_EXPORT RetDataBool CJ_GetAbortCommonEvent(int64_t id);
54     FFI_EXPORT RetDataI64 CJ_GetSubscribeInfo(int64_t id);
55     FFI_EXPORT int32_t CJ_FinishCommonEvent(int64_t id);
56 
57     // CommonEventSubscribeInfo properties
58     FFI_EXPORT void CJ_SetPermission(int64_t id, char *value);
59     FFI_EXPORT void CJ_SetDeviceId(int64_t id, const char *value);
60     FFI_EXPORT void CJ_SetUserId(int64_t id, int32_t value);
61     FFI_EXPORT void CJ_SetPriority(int64_t id, int32_t value);
62     FFI_EXPORT void CJ_SetBundleName(int64_t id, const char *value);
63     FFI_EXPORT const char *CJ_GetPermission(int64_t id);
64     FFI_EXPORT const char *CJ_GetDeviceId(int64_t id);
65     FFI_EXPORT int32_t CJ_GetUserId(int64_t id);
66     FFI_EXPORT int32_t CJ_GetPriority(int64_t id);
67     FFI_EXPORT const char *CJ_GetBundleName(int64_t id);
68     FFI_EXPORT CArrString CJ_GetEvents(int64_t id);
69 }
70 
71 #endif