• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 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 #ifndef SOFTBUS_DEF_H
16 #define SOFTBUS_DEF_H
17 
18 #include  <pthread.h>
19 #include "common_list.h"
20 #include "softbus_adapter_thread.h"
21 #include "stdint.h"
22 
23 
24 #ifdef __cplusplus
25 #if __cplusplus
26 extern "C" {
27 #endif
28 #endif
29 
30 #define INVALID_SESSION_ID (-1)
31 #define INVALID_CHANNEL_ID (-1)
32 #define INVALID_SEQ_ID (0x7fffffff)
33 
34 #define PKG_NAME_SIZE_MAX 65
35 #define SESSION_NAME_SIZE_MAX 256
36 #define DEVICE_ID_SIZE_MAX 65
37 #define GROUP_ID_SIZE_MAX 65
38 #define REQ_ID_SIZE_MAX 65
39 #define AUTH_STATE_SIZE_MAX 65
40 #define FILE_RECV_ROOT_DIR_SIZE_MAX 256
41 
42 #define MAX_DEV_INFO_VALUE_LEN 65
43 #define MAX_CAPABILITY_LEN 33
44 #define MAX_CAPABILITY_DATA_LEN 512
45 #define MAX_PACKAGE_NAME_LEN 33
46 #define MAX_DEV_INFO_COUNT 32
47 #define MAX_PUBLISH_INFO_COUNT 32
48 #define IP_LEN 46
49 #define MAX_PEERS_NUM 32
50 #define MAX_OPERATION_CODE_LEN 32
51 #define SESSION_KEY_LENGTH 32
52 #define DEVICE_KEY_LEN 16
53 
54 #define MAX_SOCKET_ADDR_LEN 46
55 
56 #define MAX_SESSION_ID 16
57 #define MAX_SESSION_SERVER_NUMBER 10
58 
59 #define WAIT_SERVER_READY_INTERVAL 200
60 
61 #define NODE_ADDR_LOOPBACK "0"
62 
63 typedef struct {
64     SoftBusMutex lock;
65     unsigned int cnt;
66     ListNode list;
67 } SoftBusList;
68 
69 typedef enum {
70     SEC_TYPE_UNKNOWN = 0,
71     SEC_TYPE_PLAINTEXT = 1,
72     SEC_TYPE_CIPHERTEXT = 2,
73 } SoftBusSecType;
74 
75 /* Timer type */
76 enum {
77     TIMER_TYPE_ONCE,
78     TIMER_TYPE_PERIOD,
79     TIMER_TYPE_MAX,
80 };
81 
82 typedef enum {
83     TRANS_SESSION_BYTES = 0,
84     TRANS_SESSION_MESSAGE,
85     TRANS_SESSION_FILE_FIRST_FRAME = 3,
86     TRANS_SESSION_FILE_ONGOINE_FRAME,
87     TRANS_SESSION_FILE_LAST_FRAME,
88     TRANS_SESSION_FILE_ONLYONE_FRAME,
89     TRANS_SESSION_FILE_ALLFILE_SENT,
90     TRANS_SESSION_FILE_CRC_CHECK_FRAME,
91     TRANS_SESSION_FILE_RESULT_FRAME,
92     TRANS_SESSION_FILE_ACK_REQUEST_SENT,
93     TRANS_SESSION_FILE_ACK_RESPONSE_SENT,
94 } SessionPktType;
95 
96 typedef enum {
97     CHANNEL_TYPE_TCP_DIRECT = 0,
98     CHANNEL_TYPE_PROXY,
99     CHANNEL_TYPE_UDP,
100     CHANNEL_TYPE_AUTH,
101     CHANNEL_TYPE_BUTT,
102 } ChannelType;
103 
104 typedef enum {
105     BUSINESS_TYPE_MESSAGE = 1,
106     BUSINESS_TYPE_BYTE = 2,
107     BUSINESS_TYPE_FILE = 3,
108     BUSINESS_TYPE_STREAM = 4,
109 
110     BUSINESS_TYPE_NOT_CARE,
111     BUSINESS_TYPE_BUTT,
112 } BusinessType;
113 
114 typedef struct {
115     int32_t channelId;
116     int32_t channelType;
117     int32_t businessType;
118     int32_t fd;
119     bool isServer;
120     bool isEnabled;
121     int32_t peerUid;
122     int32_t peerPid;
123     char *groupId;
124     uint32_t keyLen;
125     char *sessionKey;
126     char *peerSessionName;
127     char *peerDeviceId;
128     char *myIp;
129     char *peerIp;
130     int32_t peerPort;
131     int32_t routeType;
132     int32_t streamType;
133     int32_t encrypt;
134     int32_t algorithm;
135     int32_t crc;
136     bool isUdpFile;
137 } ChannelInfo;
138 
139 #ifdef __cplusplus
140 #if __cplusplus
141 }
142 #endif /* __cplusplus */
143 #endif /* __cplusplus */
144 #endif /* SOFTBUS_DEF_H */
145 
146