• 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 #ifndef RELATIONAL_STORE_FFI_H
17 #define RELATIONAL_STORE_FFI_H
18 
19 #include <cstdint>
20 #include <functional>
21 #include <string>
22 #include <vector>
23 
24 #include "ffi_remote_data.h"
25 #include "js_ability.h"
26 #include "logger.h"
27 #include "napi_base_context.h"
28 #include "native_log.h"
29 #include "rdb_common.h"
30 #include "rdb_errno.h"
31 #include "rdb_helper.h"
32 #include "rdb_open_callback.h"
33 #include "rdb_sql_utils.h"
34 #include "rdb_store_config.h"
35 #include "relational_store_impl_rdbpredicatesproxy.h"
36 #include "relational_store_impl_rdbstore.h"
37 #include "relational_store_impl_resultsetproxy.h"
38 #include "relational_store_utils.h"
39 #include "unistd.h"
40 
41 namespace OHOS {
42 namespace Relational {
43 extern "C" {
44 FFI_EXPORT int64_t FfiOHOSRelationalStoreGetRdbStore(
45     OHOS::AbilityRuntime::Context *context, StoreConfig config, int32_t *errCode);
46 
47 FFI_EXPORT void FfiOHOSRelationalStoreDeleteRdbStore(
48     OHOS::AbilityRuntime::Context *context, const char *name, int32_t *errCode);
49 
50 FFI_EXPORT void FfiOHOSRelationalStoreDeleteRdbStoreConfig(
51     OHOS::AbilityRuntime::Context *context, StoreConfig config, int32_t *errCode);
52 
53 FFI_EXPORT int64_t FfiOHOSRelationalStoreRdbPredicatesConstructor(const char *tableName);
54 
55 FFI_EXPORT int32_t FfiOHOSRelationalStoreInDevices(int64_t id, const char **devicesArray, int64_t devicesSize);
56 
57 FFI_EXPORT CArrStr FfiOHOSRelationalStoreGetAllColumnNames(int64_t id);
58 
59 FFI_EXPORT int32_t FfiOHOSRelationalStoreGetColumnCount(int64_t id, int32_t *errCode);
60 
61 FFI_EXPORT int32_t FfiOHOSRelationalStoreGetRowCount(int64_t id, int32_t *errCode);
62 
63 FFI_EXPORT int32_t FfiOHOSRelationalStoreGetRowIndex(int64_t id, int32_t *errCode);
64 
65 FFI_EXPORT bool FfiOHOSRelationalStoreIsAtFirstRow(int64_t id, int32_t *errCode);
66 
67 FFI_EXPORT bool FfiOHOSRelationalStoreIsAtLastRow(int64_t id, int32_t *errCode);
68 
69 FFI_EXPORT bool FfiOHOSRelationalStoreIsEnded(int64_t id, int32_t *errCode);
70 
71 FFI_EXPORT bool FfiOHOSRelationalStoreIsStarted(int64_t id, int32_t *errCode);
72 
73 FFI_EXPORT bool FfiOHOSRelationalStoreIsClosed(int64_t id, int32_t *errCode);
74 
75 FFI_EXPORT int32_t FfiOHOSRelationalStoreInAllDevices(int64_t id);
76 
77 FFI_EXPORT int32_t FfiOHOSRelationalStoreBeginWrap(int64_t id);
78 
79 FFI_EXPORT int32_t FfiOHOSRelationalStoreEndWrap(int64_t id);
80 
81 FFI_EXPORT int32_t FfiOHOSRelationalStoreOr(int64_t id);
82 
83 FFI_EXPORT int32_t FfiOHOSRelationalStoreAnd(int64_t id);
84 
85 FFI_EXPORT int32_t FfiOHOSRelationalStoreContains(int64_t id, const char *field, const char *value);
86 
87 FFI_EXPORT int32_t FfiOHOSRelationalStoreBeginsWith(int64_t id, const char *field, const char *value);
88 
89 FFI_EXPORT int32_t FfiOHOSRelationalStoreEndsWith(int64_t id, const char *field, const char *value);
90 
91 FFI_EXPORT int32_t FfiOHOSRelationalStoreIsNull(int64_t id, const char *field);
92 
93 FFI_EXPORT int32_t FfiOHOSRelationalStoreIsNotNull(int64_t id, const char *field);
94 
95 FFI_EXPORT int32_t FfiOHOSRelationalStoreLike(int64_t id, const char *field, const char *value);
96 
97 FFI_EXPORT int32_t FfiOHOSRelationalStoreGlob(int64_t id, const char *field, const char *value);
98 
99 FFI_EXPORT int32_t FfiOHOSRelationalStoreOrderByAsc(int64_t id, const char *field);
100 
101 FFI_EXPORT int32_t FfiOHOSRelationalStoreOrderByDesc(int64_t id, const char *field);
102 
103 FFI_EXPORT int32_t FfiOHOSRelationalStoreDistinct(int64_t id);
104 
105 FFI_EXPORT int32_t FfiOHOSRelationalStoreLimitAs(int64_t id, int32_t value);
106 
107 FFI_EXPORT int32_t FfiOHOSRelationalStoreOffsetAs(int64_t id, int32_t rowOffset);
108 
109 FFI_EXPORT int32_t FfiOHOSRelationalStoreGroupBy(int64_t id, const char **fieldsArray, int64_t fieldsSize);
110 
111 FFI_EXPORT int32_t FfiOHOSRelationalStoreIndexedBy(int64_t id, const char *field);
112 
113 FFI_EXPORT int32_t FfiOHOSRelationalStoreLessThanOrEqualTo(int64_t id, const char *field, ValueType value);
114 
115 FFI_EXPORT int32_t FfiOHOSRelationalStoreEqualTo(int64_t id, const char *field, ValueType value);
116 
117 FFI_EXPORT int32_t FfiOHOSRelationalStoreGreaterThanOrEqualTo(int64_t id, const char *field, ValueType value);
118 
119 FFI_EXPORT int32_t FfiOHOSRelationalStoreGreaterThan(int64_t id, const char *field, ValueType value);
120 
121 FFI_EXPORT int32_t FfiOHOSRelationalStoreNotBetween(
122     int64_t id, const char *field, ValueType lowValue, ValueType highValue);
123 
124 FFI_EXPORT int32_t FfiOHOSRelationalStoreLessThan(int64_t id, const char *field, ValueType value);
125 
126 FFI_EXPORT int32_t FfiOHOSRelationalStoreBetween(
127     int64_t id, const char *field, ValueType lowValue, ValueType highValue);
128 
129 FFI_EXPORT int32_t FfiOHOSRelationalStoreIn(int64_t id, const char *field, ValueType *values, int64_t valuesSize);
130 
131 FFI_EXPORT int32_t FfiOHOSRelationalStoreNotIn(int64_t id, const char *field, ValueType *values, int64_t valuesSize);
132 
133 FFI_EXPORT int32_t FfiOHOSRelationalStoreNotEqualTo(int64_t id, const char *field, ValueType value);
134 
135 FFI_EXPORT int64_t FfiOHOSRelationalStoreQuery(
136     int64_t id, int64_t predicatesId, char **columns, int64_t columnsSize, int32_t *errCode);
137 
138 FFI_EXPORT int64_t FfiOHOSRelationalStoreRemoteQuery(
139     int64_t id, char *device, int64_t predicatesId, char **columns, int64_t columnsSize);
140 
141 FFI_EXPORT int64_t FfiOHOSRelationalStoreUpdate(int64_t id, ValuesBucket valuesBucket, int64_t predicatesId,
142     NativeRdb::ConflictResolution conflictResolution, int32_t *errCode);
143 
144 FFI_EXPORT int64_t FfiOHOSRelationalStoreDelete(int64_t id, int64_t predicatesId, int32_t *errCode);
145 
146 FFI_EXPORT int32_t FfiOHOSRelationalStoreSetDistributedTables(int64_t id, char **tables, int64_t tablesSize);
147 
148 FFI_EXPORT int32_t FfiOHOSRelationalStoreSetDistributedTablesType(
149     int64_t id, char **tables, int64_t tablesSize, int32_t type);
150 
151 FFI_EXPORT int32_t FfiOHOSRelationalStoreSetDistributedTablesConfig(
152     int64_t id, char **tables, int64_t tablesSize, int32_t type, RetDistributedConfig distributedConfig);
153 
154 FFI_EXPORT char *FfiOHOSRelationalStoreObtainDistributedTableName(int64_t id, const char *device, char *table);
155 
156 FFI_EXPORT int32_t FfiOHOSRelationalStoreRollBack(int64_t id);
157 
158 FFI_EXPORT int32_t FfiOHOSRelationalStoreCommit(int64_t id);
159 
160 FFI_EXPORT int32_t FfiOHOSRelationalStoreBeginTransaction(int64_t id);
161 
162 FFI_EXPORT int32_t FfiOHOSRelationalStoreBackUp(int64_t id, const char *destName);
163 
164 FFI_EXPORT int32_t FfiOHOSRelationalStoreReStore(int64_t id, const char *srcName);
165 
166 FFI_EXPORT int64_t FfiOHOSRelationalStoreInsert(
167     int64_t id, const char *table, ValuesBucket valuesBucket, int32_t conflict, int32_t *errCode);
168 
169 FFI_EXPORT void FfiOHOSRelationalStoreExecuteSql(int64_t id, const char *sql, int32_t *errCode);
170 
171 FFI_EXPORT CArrSyncResult FfiOHOSRelationalStoreSync(int64_t id, int32_t mode, int64_t predicatesId, int32_t *errCode);
172 
173 FFI_EXPORT double FfiOHOSRelationalStoreGetDouble(int64_t id, int32_t columnIndex, int32_t *rtnCode);
174 
175 FFI_EXPORT bool FfiOHOSRelationalStoreGoToRow(int64_t id, int32_t position, int32_t *rtnCode);
176 
177 FFI_EXPORT bool FfiOHOSRelationalStoreGoToPreviousRow(int64_t id, int32_t *rtnCode);
178 
179 FFI_EXPORT bool FfiOHOSRelationalStoreGoToLastRow(int64_t id, int32_t *rtnCode);
180 
181 FFI_EXPORT char *FfiOHOSRelationalStoreGetColumnName(int64_t id, int32_t columnIndex, int32_t *rtnCode);
182 
183 FFI_EXPORT bool FfiOHOSRelationalStoreIsColumnNull(int64_t id, int32_t columnIndex, int32_t *rtnCode);
184 
185 FFI_EXPORT Asset FfiOHOSRelationalStoreGetAsset(int64_t id, int32_t columnIndex, int32_t *rtnCode);
186 
187 FFI_EXPORT int32_t FfiOHOSRelationalStoreClose(int64_t id);
188 
189 FFI_EXPORT int32_t FfiOHOSRelationalStoreGetColumnIndex(int64_t id, char *columnName, int32_t *rtnCode);
190 
191 FFI_EXPORT char *FfiOHOSRelationalStoreGetString(int64_t id, int32_t columnIndex, int32_t *rtnCode);
192 
193 FFI_EXPORT bool FfiOHOSRelationalStoreGoToFirstRow(int64_t id, int32_t *rtnCode);
194 
195 FFI_EXPORT int64_t FfiOHOSRelationalStoreGetLong(int64_t id, int32_t columnIndex, int32_t *rtnCode);
196 
197 FFI_EXPORT bool FfiOHOSRelationalStoreGoToNextRow(int64_t id, int32_t *rtnCode);
198 
199 FFI_EXPORT CArrUI8 FfiOHOSRelationalStoreGetBlob(int64_t id, int32_t columnIndex, int32_t *rtnCode);
200 
201 FFI_EXPORT bool FfiOHOSRelationalStoreGoTo(int64_t id, int32_t offset, int32_t *rtnCode);
202 
203 FFI_EXPORT Assets FfiOHOSRelationalStoreGetAssets(int64_t id, int32_t columnIndex, int32_t *rtnCode);
204 
205 FFI_EXPORT int32_t FfiOHOSRelationalStoreCleanDirtyData(int64_t id, const char *tableName, uint64_t cursor);
206 
207 FFI_EXPORT int32_t FfiOHOSRelationalStoreBatchInsert(
208     int64_t id, const char *tableName, ValuesBucket *values, int64_t valuesSize, int64_t *insertNum);
209 
210 FFI_EXPORT int64_t FfiOHOSRelationalStoreQuerySql(
211     int64_t id, const char *sql, ValueType *bindArgs, int64_t size, int32_t *errCode);
212 
213 FFI_EXPORT void FfiOHOSRelationalStoreExecuteSqlBindArgs(
214     int64_t id, char *sql, ValueType *bindArgs, int64_t bindArgsSize, int32_t *errCode);
215 
216 FFI_EXPORT ValuesBucket FfiOHOSRelationalStoreGetRow(int64_t id, int32_t *errCode);
217 
218 FFI_EXPORT int32_t FfiOHOSRelationalStoreOn(
219     int64_t id, const char *event, bool interProcess, int64_t callback, void (*callbackRef)());
220 
221 FFI_EXPORT int32_t FfiOHOSRelationalStoreOnArrStr(int64_t id, int32_t subscribeType, int64_t callbackId);
222 
223 FFI_EXPORT int32_t FfiOHOSRelationalStoreOnChangeInfo(int64_t id, int32_t subscribeType, int64_t callbackId);
224 
225 FFI_EXPORT int32_t FfiOHOSRelationalStoreOnProgressDetails(int64_t id, int64_t callbackId);
226 
227 FFI_EXPORT int32_t FfiOHOSRelationalStoreOff(int64_t id, const char *event, bool interProcess, int64_t callback);
228 
229 FFI_EXPORT int32_t FfiOHOSRelationalStoreOffAll(int64_t id, const char *event, bool interProcess);
230 
231 FFI_EXPORT int32_t FfiOHOSRelationalStoreOffArrStrChangeInfo(int64_t id, int32_t subscribeType, int64_t callbackId);
232 
233 FFI_EXPORT int32_t FfiOHOSRelationalStoreOffArrStrChangeInfoAll(int64_t id, int32_t subscribeType);
234 
235 FFI_EXPORT int32_t FfiOHOSRelationalStoreOffProgressDetails(int64_t id, int64_t callbackId);
236 
237 FFI_EXPORT int32_t FfiOHOSRelationalStoreOffProgressDetailsAll(int64_t id);
238 
239 FFI_EXPORT int32_t FfiOHOSRelationalStoreEmit(int64_t id, const char *event);
240 
241 FFI_EXPORT int32_t FfiOHOSRelationalStoreCloudSync(int64_t id, int32_t mode, CArrStr tables, int64_t callbackId);
242 
243 FFI_EXPORT int32_t FfiOHOSRelationalStoreGetVersion(int64_t id, int32_t *errCode);
244 
245 FFI_EXPORT void FfiOHOSRelationalStoreSetVersion(int64_t id, int32_t value, int32_t *errCode);
246 
247 FFI_EXPORT ModifyTime FfiOHOSRelationalStoreGetModifyTime(
248     int64_t id, char *cTable, char *cColumnName, CArrPRIKeyType cPrimaryKeys, int32_t *errCode);
249 }
250 } // namespace Relational
251 } // namespace OHOS
252 
253 #endif