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 #include "distributed_kv_store_ffi.h"
17 #include "distributed_kv_store_impl.h"
18 #include "distributed_kv_store_utils.h"
19
20 using namespace OHOS::FFI;
21 using namespace OHOS::DistributedKVStore;
22
23 namespace OHOS {
24 namespace DistributedKVStore {
25 extern "C" {
FfiOHOSDistributedKVStoreCreateKVManager(const char * boudleName,OHOS::AbilityRuntime::Context * context)26 int64_t FfiOHOSDistributedKVStoreCreateKVManager(const char* boudleName, OHOS::AbilityRuntime::Context* context)
27 {
28 if (context == nullptr || boudleName == nullptr) {
29 return -1;
30 }
31 auto nativeCJKVManager = FFIData::Create<CJKVManager>(boudleName, context);
32 if (nativeCJKVManager == nullptr) {
33 return -1;
34 }
35 return nativeCJKVManager->GetID();
36 }
37
FfiOHOSDistributedKVStoreGetKVStore(int64_t id,const char * storeId,CJOptions options,int32_t * errCode)38 int64_t FfiOHOSDistributedKVStoreGetKVStore(int64_t id, const char* storeId, CJOptions options, int32_t* errCode)
39 {
40 if (errCode == nullptr) {
41 return -1;
42 }
43 if (storeId == nullptr) {
44 *errCode = -1;
45 return -1;
46 }
47 auto instance = FFIData::GetData<CJKVManager>(id);
48 if (instance == nullptr) {
49 *errCode = -1;
50 return -1;
51 }
52 return instance->GetKVStore(storeId, options, *errCode);
53 }
54
FfiOHOSDistributedKVStoreCloseKVStore(int64_t id,const char * appId,const char * storeId)55 int32_t FfiOHOSDistributedKVStoreCloseKVStore(int64_t id, const char* appId, const char* storeId)
56 {
57 if (appId == nullptr || storeId == nullptr) {
58 return -1;
59 }
60 auto instance = FFIData::GetData<CJKVManager>(id);
61 if (instance == nullptr) {
62 return -1;
63 }
64 return instance->CloseKVStore(appId, storeId);
65 }
66
FfiOHOSDistributedKVStoreDeleteKVStore(int64_t id,const char * appId,const char * storeId)67 int32_t FfiOHOSDistributedKVStoreDeleteKVStore(int64_t id, const char* appId, const char* storeId)
68 {
69 if (appId == nullptr || storeId == nullptr) {
70 return -1;
71 }
72 auto instance = FFIData::GetData<CJKVManager>(id);
73 if (instance == nullptr) {
74 return -1;
75 }
76 return instance->DeleteKVStore(appId, storeId);
77 }
78
FfiOHOSDistributedKVStoreGetAllKVStoreId(int64_t id,const char * appId,int32_t * errCode)79 CArrStr FfiOHOSDistributedKVStoreGetAllKVStoreId(int64_t id, const char* appId, int32_t* errCode)
80 {
81 if (errCode == nullptr) {
82 return CArrStr{};
83 }
84 if (appId == nullptr) {
85 *errCode = -1;
86 return CArrStr{};
87 }
88 auto instance = FFIData::GetData<CJKVManager>(id);
89 if (instance == nullptr) {
90 *errCode = -1;
91 return CArrStr{};
92 }
93 return instance->GetAllKVStoreId(appId, *errCode);
94 }
95
FfiOHOSDistributedKVStoreOnDistributedDataServiceDie(int64_t id,void (* callbackId)())96 int32_t FfiOHOSDistributedKVStoreOnDistributedDataServiceDie(int64_t id, void (*callbackId)())
97 {
98 auto instance = FFIData::GetData<CJKVManager>(id);
99 if (instance == nullptr) {
100 return -1;
101 }
102 return instance->OnDistributedDataServiceDie(callbackId);
103 }
104
FfiOHOSDistributedKVStoreOffDistributedDataServiceDie(int64_t id,void (* callbackId)())105 int32_t FfiOHOSDistributedKVStoreOffDistributedDataServiceDie(int64_t id, void (*callbackId)())
106 {
107 auto instance = FFIData::GetData<CJKVManager>(id);
108 if (instance == nullptr) {
109 return -1;
110 }
111 return instance->OffDistributedDataServiceDie(callbackId);
112 }
113
FfiOHOSDistributedKVStoreOffAllDistributedDataServiceDie(int64_t id)114 int32_t FfiOHOSDistributedKVStoreOffAllDistributedDataServiceDie(int64_t id)
115 {
116 auto instance = FFIData::GetData<CJKVManager>(id);
117 if (instance == nullptr) {
118 return -1;
119 }
120 return instance->OffAllDistributedDataServiceDie();
121 }
122
FfiOHOSDistributedKVStoreSingleKVStorePut(int64_t id,const char * key,ValueType value)123 int32_t FfiOHOSDistributedKVStoreSingleKVStorePut(int64_t id, const char* key, ValueType value)
124 {
125 if (key == nullptr) {
126 return -1;
127 }
128 auto instance = FFIData::GetData<CJSingleKVStore>(id);
129 if (instance == nullptr) {
130 return -1;
131 }
132 return instance->Put(key, value);
133 }
134
FfiOHOSDistributedKVStoreSingleKVStorePutBatch(int64_t id,const CArrEntry cArrEntry)135 int32_t FfiOHOSDistributedKVStoreSingleKVStorePutBatch(int64_t id, const CArrEntry cArrEntry)
136 {
137 auto instance = FFIData::GetData<CJSingleKVStore>(id);
138 if (instance == nullptr) {
139 return -1;
140 }
141 return instance->PutBatch(cArrEntry);
142 }
143
FfiOHOSDistributedKVStoreSingleKVStoreDelete(int64_t id,const char * key)144 int32_t FfiOHOSDistributedKVStoreSingleKVStoreDelete(int64_t id, const char* key)
145 {
146 if (key == nullptr) {
147 return -1;
148 }
149 auto instance = FFIData::GetData<CJSingleKVStore>(id);
150 if (instance == nullptr) {
151 return -1;
152 }
153 return instance->Delete(key);
154 }
155
FfiOHOSDistributedKVStoreSingleKVStoreDeleteBatch(int64_t id,const CArrStr cArrStr)156 int32_t FfiOHOSDistributedKVStoreSingleKVStoreDeleteBatch(int64_t id, const CArrStr cArrStr)
157 {
158 auto instance = FFIData::GetData<CJSingleKVStore>(id);
159 if (instance == nullptr) {
160 return -1;
161 }
162 return instance->DeleteBatch(cArrStr);
163 }
164
FfiOHOSDistributedKVStoreSingleKVStoreRemoveDeviceData(int64_t id,const char * deviceId)165 int32_t FfiOHOSDistributedKVStoreSingleKVStoreRemoveDeviceData(int64_t id, const char* deviceId)
166 {
167 if (deviceId == nullptr) {
168 return -1;
169 }
170 auto instance = FFIData::GetData<CJSingleKVStore>(id);
171 if (instance == nullptr) {
172 return -1;
173 }
174 return instance->RemoveDeviceData(deviceId);
175 }
176
FfiOHOSDistributedKVStoreSingleKVStoreGet(int64_t id,const char * key,int32_t * errCode)177 ValueType FfiOHOSDistributedKVStoreSingleKVStoreGet(int64_t id, const char* key, int32_t* errCode)
178 {
179 if (errCode == nullptr) {
180 return ValueType{};
181 }
182 if (key == nullptr) {
183 *errCode = -1;
184 return ValueType{};
185 }
186 auto instance = FFIData::GetData<CJSingleKVStore>(id);
187 if (instance == nullptr) {
188 *errCode = -1;
189 return ValueType{};
190 }
191 return instance->Get(key, *errCode);
192 }
193
FfiOHOSDistributedKVStoreSingleKVStoreGetEntriesByQuery(int64_t id,int64_t queryId,int32_t * errCode)194 CArrEntry FfiOHOSDistributedKVStoreSingleKVStoreGetEntriesByQuery(int64_t id, int64_t queryId, int32_t* errCode)
195 {
196 if (errCode == nullptr) {
197 return CArrEntry{};
198 }
199 auto instance = FFIData::GetData<CJSingleKVStore>(id);
200 auto query = FFIData::GetData<CQuery>(queryId);
201 if (instance == nullptr || query == nullptr) {
202 *errCode = -1;
203 return CArrEntry{};
204 }
205 return instance->GetEntries(query, *errCode);
206 }
207
FfiOHOSDistributedKVStoreSingleKVStoreGetEntriesByString(int64_t id,const char * prefix,int32_t * errCode)208 CArrEntry FfiOHOSDistributedKVStoreSingleKVStoreGetEntriesByString(int64_t id, const char* prefix, int32_t* errCode)
209 {
210 if (errCode == nullptr) {
211 return CArrEntry{};
212 }
213 if (prefix == nullptr) {
214 *errCode = -1;
215 return CArrEntry{};
216 }
217 auto instance = FFIData::GetData<CJSingleKVStore>(id);
218 if (instance == nullptr) {
219 *errCode = -1;
220 return CArrEntry{};
221 }
222 return instance->GetEntries(prefix, *errCode);
223 }
224
FfiOHOSDistributedKVStoreSingleKVStoreGetResultSetByString(int64_t id,const char * keyPrefix,int32_t * errCode)225 int64_t FfiOHOSDistributedKVStoreSingleKVStoreGetResultSetByString(int64_t id, const char* keyPrefix, int32_t* errCode)
226 {
227 if (errCode == nullptr) {
228 return 0;
229 }
230 if (keyPrefix == nullptr) {
231 *errCode = -1;
232 return 0;
233 }
234 auto instance = FFIData::GetData<CJSingleKVStore>(id);
235 if (instance == nullptr) {
236 *errCode = -1;
237 return 0;
238 }
239 return instance->GetResultSetByString(keyPrefix, *errCode);
240 }
241
FfiOHOSDistributedKVStoreSingleKVStoreGetResultSetByQuery(int64_t id,int64_t queryId,int32_t * errCode)242 int64_t FfiOHOSDistributedKVStoreSingleKVStoreGetResultSetByQuery(int64_t id, int64_t queryId, int32_t* errCode)
243 {
244 if (errCode == nullptr) {
245 return 0;
246 }
247 auto instance = FFIData::GetData<CJSingleKVStore>(id);
248 auto query = FFIData::GetData<CQuery>(queryId);
249 if (instance == nullptr || query == nullptr) {
250 *errCode = -1;
251 return 0;
252 }
253 return instance->GetResultSetByQuery(query, *errCode);
254 }
255
FfiOHOSDistributedKVStoreSingleKVStoreCloseResultSet(int64_t id,int64_t resultSetId)256 int32_t FfiOHOSDistributedKVStoreSingleKVStoreCloseResultSet(int64_t id, int64_t resultSetId)
257 {
258 auto instance = FFIData::GetData<CJSingleKVStore>(id);
259 auto resultSet = FFIData::GetData<CKvStoreResultSet>(resultSetId);
260 if (instance == nullptr || resultSet == nullptr) {
261 return -1;
262 }
263 return instance->CloseResultSet(resultSet);
264 }
265
FfiOHOSDistributedKVStoreSingleKVStoreGetResultSize(int64_t id,int64_t queryId,int32_t * errCode)266 int32_t FfiOHOSDistributedKVStoreSingleKVStoreGetResultSize(int64_t id, int64_t queryId, int32_t* errCode)
267 {
268 if (errCode == nullptr) {
269 return 0;
270 }
271 auto instance = FFIData::GetData<CJSingleKVStore>(id);
272 auto query = FFIData::GetData<CQuery>(queryId);
273 if (instance == nullptr || query == nullptr) {
274 *errCode = -1;
275 return 0;
276 }
277 return instance->GetResultSize(query, *errCode);
278 }
279
FfiOHOSDistributedKVStoreSingleKVStoreBackup(int64_t id,const char * file)280 int32_t FfiOHOSDistributedKVStoreSingleKVStoreBackup(int64_t id, const char* file)
281 {
282 if (file == nullptr) {
283 return -1;
284 }
285 auto instance = FFIData::GetData<CJSingleKVStore>(id);
286 if (instance == nullptr) {
287 return -1;
288 }
289 return instance->Backup(file);
290 }
291
FfiOHOSDistributedKVStoreSingleKVStoreRestore(int64_t id,const char * file)292 int32_t FfiOHOSDistributedKVStoreSingleKVStoreRestore(int64_t id, const char* file)
293 {
294 if (file == nullptr) {
295 return -1;
296 }
297 auto instance = FFIData::GetData<CJSingleKVStore>(id);
298 if (instance == nullptr) {
299 return -1;
300 }
301 return instance->Restore(file);
302 }
303
FfiOHOSDistributedKVStoreSingleKVStoreDeleteBackup(int64_t id,const CArrStr cArrStr,int32_t * errCode)304 CStringNum FfiOHOSDistributedKVStoreSingleKVStoreDeleteBackup(int64_t id,
305 const CArrStr cArrStr, int32_t* errCode)
306 {
307 if (errCode == nullptr) {
308 return CStringNum{};
309 }
310 auto instance = FFIData::GetData<CJSingleKVStore>(id);
311 if (instance == nullptr) {
312 *errCode = -1;
313 return CStringNum{};
314 }
315 return instance->DeleteBackup(cArrStr, *errCode);
316 }
317
FfiOHOSDistributedKVStoreSingleKVStoreStartTransaction(int64_t id)318 int32_t FfiOHOSDistributedKVStoreSingleKVStoreStartTransaction(int64_t id)
319 {
320 auto instance = FFIData::GetData<CJSingleKVStore>(id);
321 if (instance == nullptr) {
322 return -1;
323 }
324 return instance->StartTransaction();
325 }
326
FfiOHOSDistributedKVStoreSingleKVStoreCommit(int64_t id)327 int32_t FfiOHOSDistributedKVStoreSingleKVStoreCommit(int64_t id)
328 {
329 auto instance = FFIData::GetData<CJSingleKVStore>(id);
330 if (instance == nullptr) {
331 return -1;
332 }
333 return instance->Commit();
334 }
335
FfiOHOSDistributedKVStoreSingleKVStoreRollback(int64_t id)336 int32_t FfiOHOSDistributedKVStoreSingleKVStoreRollback(int64_t id)
337 {
338 auto instance = FFIData::GetData<CJSingleKVStore>(id);
339 if (instance == nullptr) {
340 return -1;
341 }
342 return instance->Rollback();
343 }
344
FfiOHOSDistributedKVStoreSingleKVStoreEnableSync(int64_t id,bool enabled)345 int32_t FfiOHOSDistributedKVStoreSingleKVStoreEnableSync(int64_t id, bool enabled)
346 {
347 auto instance = FFIData::GetData<CJSingleKVStore>(id);
348 if (instance == nullptr) {
349 return -1;
350 }
351 return instance->EnableSync(enabled);
352 }
353
FfiOHOSDistributedKVStoreSingleKVStoreSetSyncRange(int64_t id,const CArrStr localLabels,const CArrStr remoteSupportLabels)354 int32_t FfiOHOSDistributedKVStoreSingleKVStoreSetSyncRange(int64_t id, const CArrStr localLabels,
355 const CArrStr remoteSupportLabels)
356 {
357 auto instance = FFIData::GetData<CJSingleKVStore>(id);
358 if (instance == nullptr) {
359 return -1;
360 }
361 return instance->SetSyncRange(localLabels, remoteSupportLabels);
362 }
363
FfiOHOSDistributedKVStoreSingleKVStoreSetSyncParam(int64_t id,uint32_t defaultAllowedDelayMs)364 int32_t FfiOHOSDistributedKVStoreSingleKVStoreSetSyncParam(int64_t id, uint32_t defaultAllowedDelayMs)
365 {
366 auto instance = FFIData::GetData<CJSingleKVStore>(id);
367 if (instance == nullptr) {
368 return -1;
369 }
370 return instance->SetSyncParam(defaultAllowedDelayMs);
371 }
372
FfiOHOSDistributedKVStoreSingleKVStoreSync(int64_t id,const CArrStr deviceIds,uint8_t mode,uint32_t delayMs)373 int32_t FfiOHOSDistributedKVStoreSingleKVStoreSync(int64_t id, const CArrStr deviceIds, uint8_t mode, uint32_t delayMs)
374 {
375 auto instance = FFIData::GetData<CJSingleKVStore>(id);
376 if (instance == nullptr) {
377 return -1;
378 }
379 return instance->Sync(deviceIds, mode, delayMs);
380 }
381
FfiOHOSDistributedKVStoreSingleKVStoreSyncByQuery(int64_t id,const CArrStr deviceIds,int64_t queryId,uint8_t mode,uint32_t delayMs)382 int32_t FfiOHOSDistributedKVStoreSingleKVStoreSyncByQuery(int64_t id, const CArrStr deviceIds, int64_t queryId,
383 uint8_t mode, uint32_t delayMs)
384 {
385 auto instance = FFIData::GetData<CJSingleKVStore>(id);
386 auto query = FFIData::GetData<CQuery>(queryId);
387 if (instance == nullptr || query == nullptr) {
388 return -1;
389 }
390 return instance->SyncByQuery(deviceIds, query, mode, delayMs);
391 }
392
FfiOHOSDistributedKVStoreSingleKVStoreOnDataChange(int64_t id,uint8_t type,void (* callbackId)(const CChangeNotification valueRef))393 int32_t FfiOHOSDistributedKVStoreSingleKVStoreOnDataChange(int64_t id, uint8_t type,
394 void (*callbackId)(const CChangeNotification valueRef))
395 {
396 auto instance = FFIData::GetData<CJSingleKVStore>(id);
397 if (instance == nullptr) {
398 return -1;
399 }
400 return instance->OnDataChange(type, callbackId);
401 }
402
FfiOHOSDistributedKVStoreSingleKVStoreOffDataChange(int64_t id,void (* callbackId)(const CChangeNotification valueRef))403 int32_t FfiOHOSDistributedKVStoreSingleKVStoreOffDataChange(int64_t id,
404 void (*callbackId)(const CChangeNotification valueRef))
405 {
406 auto instance = FFIData::GetData<CJSingleKVStore>(id);
407 if (instance == nullptr) {
408 return -1;
409 }
410 return instance->OffDataChange(callbackId);
411 }
412
FfiOHOSDistributedKVStoreSingleKVStoreOffAllDataChange(int64_t id)413 int32_t FfiOHOSDistributedKVStoreSingleKVStoreOffAllDataChange(int64_t id)
414 {
415 auto instance = FFIData::GetData<CJSingleKVStore>(id);
416 if (instance == nullptr) {
417 return -1;
418 }
419 return instance->OffAllDataChange();
420 }
421
FfiOHOSDistributedKVStoreSingleKVStoreOnSyncComplete(int64_t id,void (* callbackId)(const CStringNum valueRef))422 int32_t FfiOHOSDistributedKVStoreSingleKVStoreOnSyncComplete(int64_t id, void (*callbackId)(const CStringNum valueRef))
423 {
424 auto instance = FFIData::GetData<CJSingleKVStore>(id);
425 if (instance == nullptr) {
426 return -1;
427 }
428 return instance->OnSyncComplete(callbackId);
429 }
430
FfiOHOSDistributedKVStoreSingleKVStoreOffAllSyncComplete(int64_t id)431 int32_t FfiOHOSDistributedKVStoreSingleKVStoreOffAllSyncComplete(int64_t id)
432 {
433 auto instance = FFIData::GetData<CJSingleKVStore>(id);
434 if (instance == nullptr) {
435 return -1;
436 }
437 return instance->OffAllSyncComplete();
438 }
439
FfiOHOSDistributedKVStoreSingleKVStoreGetSecurityLevel(int64_t id,int32_t * errCode)440 int32_t FfiOHOSDistributedKVStoreSingleKVStoreGetSecurityLevel(int64_t id, int32_t* errCode)
441 {
442 if (errCode == nullptr) {
443 return 0;
444 }
445 auto instance = FFIData::GetData<CJSingleKVStore>(id);
446 if (instance == nullptr) {
447 *errCode = -1;
448 return 0;
449 }
450 return instance->GetSecurityLevel(*errCode);
451 }
452
FfiOHOSDistributedKVStoreQueryConstructor()453 int64_t FfiOHOSDistributedKVStoreQueryConstructor()
454 {
455 auto nativeCJQuery = FFIData::Create<CQuery>();
456 if (nativeCJQuery == nullptr) {
457 return -1;
458 }
459 return nativeCJQuery->GetID();
460 }
461
FfiOHOSDistributedKVStoreQueryReset(int64_t id)462 void FfiOHOSDistributedKVStoreQueryReset(int64_t id)
463 {
464 auto instance = FFIData::GetData<CQuery>(id);
465 if (instance == nullptr) {
466 return;
467 }
468 return instance->Reset();
469 }
470
FfiOHOSDistributedKVStoreQueryEqualTo(int64_t id,const char * field,ValueType value)471 void FfiOHOSDistributedKVStoreQueryEqualTo(int64_t id, const char* field, ValueType value)
472 {
473 if (field == nullptr) {
474 return;
475 }
476 auto instance = FFIData::GetData<CQuery>(id);
477 if (instance == nullptr) {
478 return;
479 }
480 return instance->EqualTo(field, value);
481 }
482
FfiOHOSDistributedKVStoreQueryNotEqualTo(int64_t id,const char * field,ValueType value)483 void FfiOHOSDistributedKVStoreQueryNotEqualTo(int64_t id, const char* field, ValueType value)
484 {
485 if (field == nullptr) {
486 return;
487 }
488 auto instance = FFIData::GetData<CQuery>(id);
489 if (instance == nullptr) {
490 return;
491 }
492 return instance->NotEqualTo(field, value);
493 }
494
FfiOHOSDistributedKVStoreQueryGreaterThan(int64_t id,const char * field,ValueType value)495 void FfiOHOSDistributedKVStoreQueryGreaterThan(int64_t id, const char* field, ValueType value)
496 {
497 if (field == nullptr) {
498 return;
499 }
500 auto instance = FFIData::GetData<CQuery>(id);
501 if (instance == nullptr) {
502 return;
503 }
504 return instance->GreaterThan(field, value);
505 }
506
FfiOHOSDistributedKVStoreQueryLessThan(int64_t id,const char * field,ValueType value)507 void FfiOHOSDistributedKVStoreQueryLessThan(int64_t id, const char* field, ValueType value)
508 {
509 if (field == nullptr) {
510 return;
511 }
512 auto instance = FFIData::GetData<CQuery>(id);
513 if (instance == nullptr) {
514 return;
515 }
516 return instance->LessThan(field, value);
517 }
518
FfiOHOSDistributedKVStoreQueryGreaterThanOrEqualTo(int64_t id,const char * field,ValueType value)519 void FfiOHOSDistributedKVStoreQueryGreaterThanOrEqualTo(int64_t id, const char* field, ValueType value)
520 {
521 if (field == nullptr) {
522 return;
523 }
524 auto instance = FFIData::GetData<CQuery>(id);
525 if (instance == nullptr) {
526 return;
527 }
528 return instance->GreaterThanOrEqualTo(field, value);
529 }
530
FfiOHOSDistributedKVStoreQueryLessThanOrEqualTo(int64_t id,const char * field,ValueType value)531 void FfiOHOSDistributedKVStoreQueryLessThanOrEqualTo(int64_t id, const char* field, ValueType value)
532 {
533 if (field == nullptr) {
534 return;
535 }
536 auto instance = FFIData::GetData<CQuery>(id);
537 if (instance == nullptr) {
538 return;
539 }
540 return instance->LessThanOrEqualTo(field, value);
541 }
542
FfiOHOSDistributedKVStoreQueryIsNull(int64_t id,const char * field)543 void FfiOHOSDistributedKVStoreQueryIsNull(int64_t id, const char* field)
544 {
545 if (field == nullptr) {
546 return;
547 }
548 auto instance = FFIData::GetData<CQuery>(id);
549 if (instance == nullptr) {
550 return;
551 }
552 return instance->IsNull(field);
553 }
554
FfiOHOSDistributedKVStoreQueryInNumber(int64_t id,const char * field,const CArrNumber valueList)555 void FfiOHOSDistributedKVStoreQueryInNumber(int64_t id, const char* field, const CArrNumber valueList)
556 {
557 if (field == nullptr) {
558 return;
559 }
560 auto instance = FFIData::GetData<CQuery>(id);
561 if (instance == nullptr) {
562 return;
563 }
564 return instance->InNumber(field, valueList);
565 }
566
FfiOHOSDistributedKVStoreQueryInString(int64_t id,const char * field,const CArrStr valueList)567 void FfiOHOSDistributedKVStoreQueryInString(int64_t id, const char* field, const CArrStr valueList)
568 {
569 if (field == nullptr) {
570 return;
571 }
572 auto instance = FFIData::GetData<CQuery>(id);
573 if (instance == nullptr) {
574 return;
575 }
576 return instance->InString(field, valueList);
577 }
578
FfiOHOSDistributedKVStoreQueryNotInNumber(int64_t id,const char * field,const CArrNumber valueList)579 void FfiOHOSDistributedKVStoreQueryNotInNumber(int64_t id, const char* field, const CArrNumber valueList)
580 {
581 if (field == nullptr) {
582 return;
583 }
584 auto instance = FFIData::GetData<CQuery>(id);
585 if (instance == nullptr) {
586 return;
587 }
588 return instance->NotInNumber(field, valueList);
589 }
590
FfiOHOSDistributedKVStoreQueryNotInString(int64_t id,const char * field,const CArrStr valueList)591 void FfiOHOSDistributedKVStoreQueryNotInString(int64_t id, const char* field, const CArrStr valueList)
592 {
593 if (field == nullptr) {
594 return;
595 }
596 auto instance = FFIData::GetData<CQuery>(id);
597 if (instance == nullptr) {
598 return;
599 }
600 return instance->NotInString(field, valueList);
601 }
602
FfiOHOSDistributedKVStoreQueryLike(int64_t id,const char * field,const char * value)603 void FfiOHOSDistributedKVStoreQueryLike(int64_t id, const char* field, const char* value)
604 {
605 if (field == nullptr || value == nullptr) {
606 return;
607 }
608 auto instance = FFIData::GetData<CQuery>(id);
609 if (instance == nullptr) {
610 return;
611 }
612 return instance->Like(field, value);
613 }
614
FfiOHOSDistributedKVStoreQueryUnlike(int64_t id,const char * field,const char * value)615 void FfiOHOSDistributedKVStoreQueryUnlike(int64_t id, const char* field, const char* value)
616 {
617 if (field == nullptr || value == nullptr) {
618 return;
619 }
620 auto instance = FFIData::GetData<CQuery>(id);
621 if (instance == nullptr) {
622 return;
623 }
624 return instance->Unlike(field, value);
625 }
626
FfiOHOSDistributedKVStoreQueryAnd(int64_t id)627 void FfiOHOSDistributedKVStoreQueryAnd(int64_t id)
628 {
629 auto instance = FFIData::GetData<CQuery>(id);
630 if (instance == nullptr) {
631 return;
632 }
633 return instance->And();
634 }
635
FfiOHOSDistributedKVStoreQueryOr(int64_t id)636 void FfiOHOSDistributedKVStoreQueryOr(int64_t id)
637 {
638 auto instance = FFIData::GetData<CQuery>(id);
639 if (instance == nullptr) {
640 return;
641 }
642 return instance->Or();
643 }
644
FfiOHOSDistributedKVStoreQueryOrderByAsc(int64_t id,const char * field)645 void FfiOHOSDistributedKVStoreQueryOrderByAsc(int64_t id, const char* field)
646 {
647 if (field == nullptr) {
648 return;
649 }
650 auto instance = FFIData::GetData<CQuery>(id);
651 if (instance == nullptr) {
652 return;
653 }
654 return instance->OrderByAsc(field);
655 }
656
FfiOHOSDistributedKVStoreQueryOrderByDesc(int64_t id,const char * field)657 void FfiOHOSDistributedKVStoreQueryOrderByDesc(int64_t id, const char* field)
658 {
659 if (field == nullptr) {
660 return;
661 }
662 auto instance = FFIData::GetData<CQuery>(id);
663 if (instance == nullptr) {
664 return;
665 }
666 return instance->OrderByDesc(field);
667 }
668
FfiOHOSDistributedKVStoreQueryLimit(int64_t id,int32_t total,int32_t offset)669 void FfiOHOSDistributedKVStoreQueryLimit(int64_t id, int32_t total, int32_t offset)
670 {
671 auto instance = FFIData::GetData<CQuery>(id);
672 if (instance == nullptr) {
673 return;
674 }
675 return instance->Limit(total, offset);
676 }
677
FfiOHOSDistributedKVStoreQueryIsNotNull(int64_t id,const char * field)678 void FfiOHOSDistributedKVStoreQueryIsNotNull(int64_t id, const char* field)
679 {
680 if (field == nullptr) {
681 return;
682 }
683 auto instance = FFIData::GetData<CQuery>(id);
684 if (instance == nullptr) {
685 return;
686 }
687 return instance->IsNotNull(field);
688 }
689
FfiOHOSDistributedKVStoreQueryBeginGroup(int64_t id)690 void FfiOHOSDistributedKVStoreQueryBeginGroup(int64_t id)
691 {
692 auto instance = FFIData::GetData<CQuery>(id);
693 if (instance == nullptr) {
694 return;
695 }
696 return instance->BeginGroup();
697 }
698
FfiOHOSDistributedKVStoreQueryEndGroup(int64_t id)699 void FfiOHOSDistributedKVStoreQueryEndGroup(int64_t id)
700 {
701 auto instance = FFIData::GetData<CQuery>(id);
702 if (instance == nullptr) {
703 return;
704 }
705 return instance->EndGroup();
706 }
707
FfiOHOSDistributedKVStoreQueryPrefixKey(int64_t id,const char * prefix)708 void FfiOHOSDistributedKVStoreQueryPrefixKey(int64_t id, const char* prefix)
709 {
710 if (prefix == nullptr) {
711 return;
712 }
713 auto instance = FFIData::GetData<CQuery>(id);
714 if (instance == nullptr) {
715 return;
716 }
717 return instance->PrefixKey(prefix);
718 }
719
FfiOHOSDistributedKVStoreQuerySetSuggestIndex(int64_t id,const char * index)720 void FfiOHOSDistributedKVStoreQuerySetSuggestIndex(int64_t id, const char* index)
721 {
722 if (index == nullptr) {
723 return;
724 }
725 auto instance = FFIData::GetData<CQuery>(id);
726 if (instance == nullptr) {
727 return;
728 }
729 return instance->SetSuggestIndex(index);
730 }
731
FfiOHOSDistributedKVStoreQueryDeviceId(int64_t id,const char * deviceId)732 void FfiOHOSDistributedKVStoreQueryDeviceId(int64_t id, const char* deviceId)
733 {
734 if (deviceId == nullptr) {
735 return;
736 }
737 auto instance = FFIData::GetData<CQuery>(id);
738 if (instance == nullptr) {
739 return;
740 }
741 return instance->DeviceId(deviceId);
742 }
743
FfiOHOSDistributedKVStoreQueryGetSqlLike(int64_t id)744 const char* FfiOHOSDistributedKVStoreQueryGetSqlLike(int64_t id)
745 {
746 auto instance = FFIData::GetData<CQuery>(id);
747 if (instance == nullptr) {
748 return nullptr;
749 }
750 return MallocCString(instance->GetSqlLike());
751 }
752
FfiOHOSDistributedKVStoreDeviceKVStoreGet(int64_t id,const char * deviceId,const char * key,int32_t * errCode)753 ValueType FfiOHOSDistributedKVStoreDeviceKVStoreGet(int64_t id, const char* deviceId,
754 const char* key, int32_t* errCode)
755 {
756 if (errCode == nullptr) {
757 return ValueType{};
758 }
759 if (deviceId == nullptr || key == nullptr) {
760 *errCode = -1;
761 return ValueType{};
762 }
763 auto instance = FFIData::GetData<CJDeviceKVStore>(id);
764 if (instance == nullptr) {
765 *errCode = -1;
766 return ValueType{};
767 }
768 return instance->Get(deviceId, key, *errCode);
769 }
770
FfiOHOSDistributedKVStoreDeviceKVStoreGetEntries(int64_t id,const char * deviceId,const char * keyPrefix,int32_t * errCode)771 CArrEntry FfiOHOSDistributedKVStoreDeviceKVStoreGetEntries(int64_t id, const char* deviceId, const char* keyPrefix,
772 int32_t* errCode)
773 {
774 if (errCode == nullptr) {
775 return CArrEntry{};
776 }
777 if (deviceId == nullptr || keyPrefix == nullptr) {
778 *errCode = -1;
779 return CArrEntry{};
780 }
781 auto instance = FFIData::GetData<CJDeviceKVStore>(id);
782 if (instance == nullptr) {
783 *errCode = -1;
784 return CArrEntry{};
785 }
786 return instance->GetEntries(deviceId, keyPrefix, *errCode);
787 }
788
FfiOHOSDistributedKVStoreDeviceKVStoreGetEntriesQuery(int64_t id,const char * deviceId,int64_t queryId,int32_t * errCode)789 CArrEntry FfiOHOSDistributedKVStoreDeviceKVStoreGetEntriesQuery(int64_t id, const char* deviceId, int64_t queryId,
790 int32_t* errCode)
791 {
792 if (errCode == nullptr) {
793 return CArrEntry{};
794 }
795 if (deviceId == nullptr) {
796 *errCode = -1;
797 return CArrEntry{};
798 }
799 auto instance = FFIData::GetData<CJDeviceKVStore>(id);
800 auto query = FFIData::GetData<CQuery>(queryId);
801 if (instance == nullptr || query == nullptr) {
802 *errCode = -1;
803 return CArrEntry{};
804 }
805 return instance->GetEntries(deviceId, query, *errCode);
806 }
807
FfiOHOSDistributedKVStoreDeviceKVStoreGetResultSet(int64_t id,const char * deviceId,const char * keyPrefix,int32_t * errCode)808 int64_t FfiOHOSDistributedKVStoreDeviceKVStoreGetResultSet(int64_t id, const char* deviceId, const char* keyPrefix,
809 int32_t* errCode)
810 {
811 if (errCode == nullptr) {
812 return -1;
813 }
814 if (deviceId == nullptr || keyPrefix == nullptr) {
815 *errCode = -1;
816 return -1;
817 }
818 auto instance = FFIData::GetData<CJDeviceKVStore>(id);
819 if (instance == nullptr) {
820 *errCode = -1;
821 return -1;
822 }
823 return instance->GetResultSet(deviceId, keyPrefix, *errCode);
824 }
825
FfiOHOSDistributedKVStoreDeviceKVStoreGetResultSetQuery(int64_t id,const char * deviceId,int64_t queryId,int32_t * errCode)826 int64_t FfiOHOSDistributedKVStoreDeviceKVStoreGetResultSetQuery(int64_t id, const char* deviceId, int64_t queryId,
827 int32_t* errCode)
828 {
829 if (errCode == nullptr) {
830 return -1;
831 }
832 if (deviceId == nullptr) {
833 *errCode = -1;
834 return -1;
835 }
836 auto instance = FFIData::GetData<CJDeviceKVStore>(id);
837 auto query = FFIData::GetData<CQuery>(queryId);
838 if (instance == nullptr || query == nullptr) {
839 *errCode = -1;
840 return -1;
841 }
842 return instance->GetResultSetQuery(deviceId, query, *errCode);
843 }
844
FfiOHOSDistributedKVStoreDeviceKVStoreGetResultSize(int64_t id,const char * deviceId,int64_t queryId,int32_t * errCode)845 int32_t FfiOHOSDistributedKVStoreDeviceKVStoreGetResultSize(int64_t id, const char* deviceId, int64_t queryId,
846 int32_t* errCode)
847 {
848 if (errCode == nullptr) {
849 return -1;
850 }
851 if (deviceId == nullptr) {
852 *errCode = -1;
853 return -1;
854 }
855 auto instance = FFIData::GetData<CJDeviceKVStore>(id);
856 auto query = FFIData::GetData<CQuery>(queryId);
857 if (instance == nullptr || query == nullptr) {
858 *errCode = -1;
859 return -1;
860 }
861 return instance->GetResultSize(deviceId, query, *errCode);
862 }
863
FfiOHOSDistributedKVStoreKVStoreResultSetGetCount(int64_t id)864 int32_t FfiOHOSDistributedKVStoreKVStoreResultSetGetCount(int64_t id)
865 {
866 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
867 if (instance == nullptr) {
868 return -1;
869 }
870 return instance->GetCount();
871 }
872
FfiOHOSDistributedKVStoreKVStoreResultSetGetPosition(int64_t id)873 int32_t FfiOHOSDistributedKVStoreKVStoreResultSetGetPosition(int64_t id)
874 {
875 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
876 if (instance == nullptr) {
877 return -1;
878 }
879 return instance->GetPosition();
880 }
881
FfiOHOSDistributedKVStoreKVStoreResultSetMoveToFirst(int64_t id)882 bool FfiOHOSDistributedKVStoreKVStoreResultSetMoveToFirst(int64_t id)
883 {
884 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
885 if (instance == nullptr) {
886 return false;
887 }
888 return instance->MoveToFirst();
889 }
890
FfiOHOSDistributedKVStoreKVStoreResultSetMoveToLast(int64_t id)891 bool FfiOHOSDistributedKVStoreKVStoreResultSetMoveToLast(int64_t id)
892 {
893 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
894 if (instance == nullptr) {
895 return false;
896 }
897 return instance->MoveToLast();
898 }
899
FfiOHOSDistributedKVStoreKVStoreResultSetMoveToNext(int64_t id)900 bool FfiOHOSDistributedKVStoreKVStoreResultSetMoveToNext(int64_t id)
901 {
902 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
903 if (instance == nullptr) {
904 return false;
905 }
906 return instance->MoveToNext();
907 }
908
FfiOHOSDistributedKVStoreKVStoreResultSetMoveToPrevious(int64_t id)909 bool FfiOHOSDistributedKVStoreKVStoreResultSetMoveToPrevious(int64_t id)
910 {
911 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
912 if (instance == nullptr) {
913 return false;
914 }
915 return instance->MoveToPrevious();
916 }
917
FfiOHOSDistributedKVStoreKVStoreResultSetMove(int64_t id,int32_t offset)918 bool FfiOHOSDistributedKVStoreKVStoreResultSetMove(int64_t id, int32_t offset)
919 {
920 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
921 if (instance == nullptr) {
922 return false;
923 }
924 return instance->Move(offset);
925 }
926
FfiOHOSDistributedKVStoreKVStoreResultSetMoveToPosition(int64_t id,int32_t position)927 bool FfiOHOSDistributedKVStoreKVStoreResultSetMoveToPosition(int64_t id, int32_t position)
928 {
929 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
930 if (instance == nullptr) {
931 return false;
932 }
933 return instance->MoveToPosition(position);
934 }
935
FfiOHOSDistributedKVStoreKVStoreResultSetIsFirst(int64_t id)936 bool FfiOHOSDistributedKVStoreKVStoreResultSetIsFirst(int64_t id)
937 {
938 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
939 if (instance == nullptr) {
940 return false;
941 }
942 return instance->IsFirst();
943 }
944
FfiOHOSDistributedKVStoreKVStoreResultSetIsLast(int64_t id)945 bool FfiOHOSDistributedKVStoreKVStoreResultSetIsLast(int64_t id)
946 {
947 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
948 if (instance == nullptr) {
949 return false;
950 }
951 return instance->IsLast();
952 }
953
FfiOHOSDistributedKVStoreKVStoreResultSetIsBeforeFirst(int64_t id)954 bool FfiOHOSDistributedKVStoreKVStoreResultSetIsBeforeFirst(int64_t id)
955 {
956 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
957 if (instance == nullptr) {
958 return false;
959 }
960 return instance->IsBeforeFirst();
961 }
962
FfiOHOSDistributedKVStoreKVStoreResultSetIsAfterLast(int64_t id)963 bool FfiOHOSDistributedKVStoreKVStoreResultSetIsAfterLast(int64_t id)
964 {
965 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
966 if (instance == nullptr) {
967 return false;
968 }
969 return instance->IsAfterLast();
970 }
971
FfiOHOSDistributedKVStoreKVStoreResultSetGetEntry(int64_t id)972 CEntry FfiOHOSDistributedKVStoreKVStoreResultSetGetEntry(int64_t id)
973 {
974 auto instance = FFIData::GetData<OHOS::DistributedKVStore::CKvStoreResultSet>(id);
975 if (instance == nullptr) {
976 return CEntry{};
977 }
978 return instance->GetEntry();
979 }
980
FfiOHOSFreeCString(char * str)981 void FfiOHOSFreeCString(char* str)
982 {
983 FreeCString(str);
984 }
985 }
986 }
987 }
988