• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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