• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 LNN_SYNC_INFO_MANAGER_H
17 #define LNN_SYNC_INFO_MANAGER_H
18 
19 #include "softbus_common.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 typedef enum {
26     LNN_INFO_TYPE_CAPABILITY = 0,
27     LNN_INFO_TYPE_CONNECTION_INFO,
28     LNN_INFO_TYPE_DEVICE_NAME,
29     LNN_INFO_TYPE_BATTERY_INFO,
30     LNN_INFO_TYPE_SCREEN_STATUS,
31     LNN_INFO_TYPE_OFFLINE = 5,
32     LNN_INFO_TYPE_P2P_INFO,
33     LNN_INFO_TYPE_CHANNEL_NOISE_INFO,
34     LNN_INFO_TYPE_NOT_TRUSTED,
35     LNN_INFO_TYPE_WIFI_DIRECT,
36     LNN_INFO_TYPE_NICK_NAME = 10,
37     LNN_INFO_TYPE_MASTER_ELECT,
38     LNN_INFO_TYPE_BSS_TRANS,
39     LNN_INFO_TYPE_TOPO_UPDATE,
40     LNN_INFO_TYPE_NODE_ADDR,
41     LNN_INFO_TYPE_NODE_ADDR_DETECTION,
42     LNN_INFO_TYPE_SYNC_CIPHERKEY,
43     LNN_INFO_TYPE_ROUTE_LSU,
44     LNN_INFO_TYPE_PTK,
45     LNN_INFO_TYPE_USERID,
46     LNN_INFO_TYPE_SYNC_BROADCASTLINKKEY,
47     LNN_INFO_TYPE_COUNT,
48     //LNN_INFO_TYPE_P2P_ROLE = 256,
49 } LnnSyncInfoType;
50 
51 typedef void (*LnnSyncInfoMsgHandler)(LnnSyncInfoType type, const char *networkId, const uint8_t *msg, uint32_t len);
52 typedef void (*LnnSyncInfoMsgComplete)(LnnSyncInfoType type, const char *networkId, const uint8_t *msg, uint32_t len);
53 
54 int32_t LnnInitSyncInfoManager(void);
55 void LnnDeinitSyncInfoManager(void);
56 
57 int32_t LnnRegSyncInfoHandler(LnnSyncInfoType type, LnnSyncInfoMsgHandler handler);
58 int32_t LnnUnregSyncInfoHandler(LnnSyncInfoType type, LnnSyncInfoMsgHandler handler);
59 
60 int32_t LnnSendSyncInfoMsg(LnnSyncInfoType type, const char *networkId,
61     const uint8_t *msg, uint32_t len, LnnSyncInfoMsgComplete complete);
62 int32_t LnnSendP2pSyncInfoMsg(const char *networkId, uint32_t netCapability);
63 int32_t LnnSendWifiOfflineInfoMsg(void);
64 
65 typedef struct {
66     LnnSyncInfoType type;
67     char networkId[NETWORK_ID_BUF_LEN];
68     uint8_t *msg;
69     uint32_t len;
70     LnnSyncInfoMsgComplete complete;
71 } SendSyncInfoParam;
72 
73 void LnnSendAsyncInfoMsg(void *param);
74 SendSyncInfoParam *CreateSyncInfoParam(
75     LnnSyncInfoType type, const char *networkId, const uint8_t *msg, uint32_t len, LnnSyncInfoMsgComplete complete);
76 
77 #ifdef __cplusplus
78 }
79 #endif
80 #endif // LNN_SYNC_INFO_MANAGER_H
81