1# OHIPCSkeleton
2
3
4## 概述
5
6提供IPC框架tokenId、凭据、PID/UID、线程池配置等功能C接口。
7
8**系统能力:** SystemCapability.Communication.IPC.Core
9
10**起始版本:** 12
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [ipc_cskeleton.h](ipc__cskeleton_8h.md) | 提供IPC框架tokenId、凭据、PID/UID、线程池配置等功能C接口。 |
21
22
23### 函数
24
25| 名称 | 描述 |
26| -------- | -------- |
27| void [OH_IPCSkeleton_JoinWorkThread](#oh_ipcskeleton_joinworkthread) (void) | 当前线程加入IPC工作线程池。 |
28| void [OH_IPCSkeleton_StopWorkThread](#oh_ipcskeleton_stopworkthread) (void) | 当前线程退出IPC工作线程池。 |
29| uint64_t [OH_IPCSkeleton_GetCallingTokenId](#oh_ipcskeleton_getcallingtokenid) (void) | 获取调用方TokenId.该接口需要在IPC上下文中调用,否则返回自身TokenId。 |
30| uint64_t [OH_IPCSkeleton_GetFirstTokenId](#oh_ipcskeleton_getfirsttokenid) (void) | 获取首调者TokenId。 |
31| uint64_t [OH_IPCSkeleton_GetSelfTokenId](#oh_ipcskeleton_getselftokenid) (void) | 获取自身TokenId。 |
32| uint64_t [OH_IPCSkeleton_GetCallingPid](#oh_ipcskeleton_getcallingpid) (void) | 获取调用方进程ID.该接口需要在IPC上下文中调用,否则返当前进程ID。 |
33| uint64_t [OH_IPCSkeleton_GetCallingUid](#oh_ipcskeleton_getcallinguid) (void) | 获取调用方用户ID.该接口需要在IPC上下文中调用,否则返当前用户ID。 |
34| int [OH_IPCSkeleton_IsLocalCalling](#oh_ipcskeleton_islocalcalling) (void) | 判断是否正在进行本地调用。 |
35| int [OH_IPCSkeleton_SetMaxWorkThreadNum](#oh_ipcskeleton_setmaxworkthreadnum) (const int maxThreadNum) | 设置最大工作线程数。 |
36| int [OH_IPCSkeleton_ResetCallingIdentity](#oh_ipcskeleton_resetcallingidentity) (char \*\*identity, int32_t \*len, [OH_IPC_MemAllocator](_o_h_i_p_c_parcel.md#oh_ipc_memallocator) allocator) | 重置调用方身份凭证为自身进程的身份凭证(包括tokenid、UID和PID信息),并返回调用方的凭证信息。 该信息主要用于OH_IPCSkeleton_SetCallingIdentity接口调用。 |
37| int [OH_IPCSkeleton_SetCallingIdentity](#oh_ipcskeleton_setcallingidentity) (const char \*identity) | 恢复调用方凭证信息至IPC上下文中。 |
38| int [OH_IPCSkeleton_IsHandlingTransaction](#oh_ipcskeleton_ishandlingtransaction) (void) | 是否正在处理IPC请求。 |
39
40
41## 函数说明
42
43
44### OH_IPCSkeleton_GetCallingPid()
45
46```
47uint64_t OH_IPCSkeleton_GetCallingPid (void )
48```
49
50**描述**
51
52获取调用方进程ID.该接口需要在IPC上下文中调用,否则返当前进程ID。
53
54**系统能力:** SystemCapability.Communication.IPC.Core
55
56**起始版本:** 12
57
58**返回:**
59
60返回调用方进程ID。
61
62
63### OH_IPCSkeleton_GetCallingTokenId()
64
65```
66uint64_t OH_IPCSkeleton_GetCallingTokenId (void )
67```
68
69**描述**
70
71获取调用方TokenId.该接口需要在IPC上下文中调用,否则返回自身TokenId。
72
73**系统能力:** SystemCapability.Communication.IPC.Core
74
75**起始版本:** 12
76
77**返回:**
78
79返回调用方TokenId。
80
81
82### OH_IPCSkeleton_GetCallingUid()
83
84```
85uint64_t OH_IPCSkeleton_GetCallingUid (void )
86```
87
88**描述**
89
90获取调用方用户ID.该接口需要在IPC上下文中调用,否则返当前用户ID。
91
92**系统能力:** SystemCapability.Communication.IPC.Core
93
94**起始版本:** 12
95
96**返回:**
97
98返回调用方用户ID。
99
100
101### OH_IPCSkeleton_GetFirstTokenId()
102
103```
104uint64_t OH_IPCSkeleton_GetFirstTokenId (void )
105```
106
107**描述**
108
109获取首调者TokenId。
110
111**系统能力:** SystemCapability.Communication.IPC.Core
112
113**起始版本:** 12
114
115**返回:**
116
117返回首调者TokenId。
118
119
120### OH_IPCSkeleton_GetSelfTokenId()
121
122```
123uint64_t OH_IPCSkeleton_GetSelfTokenId (void )
124```
125
126**描述**
127
128获取自身TokenId。
129
130**系统能力:** SystemCapability.Communication.IPC.Core
131
132**起始版本:** 12
133
134**返回:**
135
136返回自身TokenId。
137
138
139### OH_IPCSkeleton_IsHandlingTransaction()
140
141```
142int OH_IPCSkeleton_IsHandlingTransaction (void )
143```
144
145**描述**
146
147是否正在处理IPC请求。
148
149**系统能力:** SystemCapability.Communication.IPC.Core
150
151**起始版本:** 12
152
153**返回:**
154
155正在处理IPC请求,返回1;否则,返回0。
156
157
158### OH_IPCSkeleton_IsLocalCalling()
159
160```
161int OH_IPCSkeleton_IsLocalCalling (void )
162```
163
164**描述**
165
166判断是否正在进行本地调用。
167
168**系统能力:** SystemCapability.Communication.IPC.Core
169
170**起始版本:** 12
171
172**返回:**
173
174正在进行本地调用,返回1;否则,返回0。
175
176
177### OH_IPCSkeleton_JoinWorkThread()
178
179```
180void OH_IPCSkeleton_JoinWorkThread (void )
181```
182
183**描述**
184
185当前线程加入IPC工作线程池。
186
187**系统能力:** SystemCapability.Communication.IPC.Core
188
189**起始版本:** 12
190
191
192### OH_IPCSkeleton_ResetCallingIdentity()
193
194```
195int OH_IPCSkeleton_ResetCallingIdentity (char ** identity, int32_t * len, OH_IPC_MemAllocator allocator )
196```
197
198**描述**
199
200重置调用方身份凭证为自身进程的身份凭证(包括tokenid、UID和PID信息),并返回调用方的凭证信息。 该信息主要用于OH_IPCSkeleton_SetCallingIdentity接口调用。
201
202**系统能力:** SystemCapability.Communication.IPC.Core
203
204**起始版本:** 12
205
206**参数:**
207
208| 名称 | 描述 |
209| -------- | -------- |
210| identity | 用于存储调凭证的内存地址,该内存由用户提供的分配器进行内存分配,用户使用完后需要主动释放,不能为空。 |
211| len | 写入identity的数据长度,不能为空。 |
212| allocator | 用户指定的用来分配identity的内存分配器,不能为空。 |
213
214**返回:**
215
216成功返回[OH_IPC_ErrorCode#OH_IPC_SUCCESS](_o_h_i_p_c_error_code.md);
217
218参数错误返回[OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR](_o_h_i_p_c_error_code.md);
219
220内存分配失败返回[OH_IPC_ErrorCode#OH_IPC_MEM_ALLOCATOR_ERROR](_o_h_i_p_c_error_code.md);
221
222其它情况返回[OH_IPC_ErrorCode#OH_IPC_INNER_ERROR](_o_h_i_p_c_error_code.md)。
223
224
225### OH_IPCSkeleton_SetCallingIdentity()
226
227```
228int OH_IPCSkeleton_SetCallingIdentity (const char * identity)
229```
230
231**描述**
232
233恢复调用方凭证信息至IPC上下文中。
234
235**系统能力:** SystemCapability.Communication.IPC.Core
236
237**起始版本:** 12
238
239**参数:**
240
241| 名称 | 描述 |
242| -------- | -------- |
243| identity | 调用方凭证,不能为空。来源于OH_IPCSkeleton_ResetCallingIdentity的返回值。 |
244
245**返回:**
246
247成功返回[OH_IPC_ErrorCode#OH_IPC_SUCCESS](_o_h_i_p_c_error_code.md);
248
249参数错误返回[OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR](_o_h_i_p_c_error_code.md);
250
251其它情况返回[OH_IPC_ErrorCode#OH_IPC_INNER_ERROR](_o_h_i_p_c_error_code.md)。
252
253
254### OH_IPCSkeleton_SetMaxWorkThreadNum()
255
256```
257int OH_IPCSkeleton_SetMaxWorkThreadNum (const int maxThreadNum)
258```
259
260**描述**
261
262设置最大工作线程数。
263
264**系统能力:** SystemCapability.Communication.IPC.Core
265
266**起始版本:** 12
267
268**参数:**
269
270| 名称 | 描述 |
271| -------- | -------- |
272| maxThreadNum | 最大工作线程数,默认16,范围[1, 32]。 |
273
274**返回:**
275
276成功返回[OH_IPC_ErrorCode#OH_IPC_SUCCESS](_o_h_i_p_c_error_code.md);
277
278参数错误返回[OH_IPC_ErrorCode#OH_IPC_CHECK_PARAM_ERROR](_o_h_i_p_c_error_code.md);
279
280其它情况返回[OH_IPC_ErrorCode#OH_IPC_INNER_ERROR](_o_h_i_p_c_error_code.md)。
281
282
283### OH_IPCSkeleton_StopWorkThread()
284
285```
286void OH_IPCSkeleton_StopWorkThread (void )
287```
288
289**描述**
290
291当前线程退出IPC工作线程池。
292
293**系统能力:** SystemCapability.Communication.IPC.Core
294
295**起始版本:** 12
296