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 "relational_store_impl_rdbstore.h" 20 #include "relational_store_impl_rdbpredicatesproxy.h" 21 #include "relational_store_impl_resultsetproxy.h" 22 #include <cstdint> 23 #include "napi_base_context.h" 24 #include "rdb_store_config.h" 25 #include "rdb_helper.h" 26 #include "ffi_remote_data.h" 27 #include <functional> 28 #include <string> 29 #include <vector> 30 #include <cstdint> 31 #include "logger.h" 32 #include "rdb_errno.h" 33 #include "rdb_open_callback.h" 34 #include "rdb_sql_utils.h" 35 #include "unistd.h" 36 #include "native_log.h" 37 #include "js_ability.h" 38 #include "rdb_common.h" 39 40 41 namespace OHOS { 42 namespace Relational { 43 extern "C" { 44 FFI_EXPORT int64_t FfiOHOSRelationalStoreGetRdbStore(OHOS::AbilityRuntime::Context* context, StoreConfig config, 45 int32_t *errCode); 46 47 FFI_EXPORT void FfiOHOSRelationalStoreDeleteRdbStore(OHOS::AbilityRuntime::Context* context, const char* name, 48 int32_t *errCode); 49 50 FFI_EXPORT void FfiOHOSRelationalStoreDeleteRdbStoreConfig(OHOS::AbilityRuntime::Context* context, 51 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(int64_t id, const char* field, ValueType lowValue, 122 ValueType highValue); 123 124 FFI_EXPORT int32_t FfiOHOSRelationalStoreLessThan(int64_t id, const char* field, ValueType value); 125 126 FFI_EXPORT int32_t FfiOHOSRelationalStoreBetween(int64_t id, const char* field, ValueType lowValue, 127 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, 132 int64_t valuesSize); 133 134 FFI_EXPORT int32_t FfiOHOSRelationalStoreNotEqualTo(int64_t id, const char* field, ValueType value); 135 136 FFI_EXPORT int64_t FfiOHOSRelationalStoreQuery(int64_t id, int64_t predicatesId, char** columns, 137 int64_t columnsSize, int32_t *errCode); 138 139 FFI_EXPORT int64_t FfiOHOSRelationalStoreRemoteQuery(int64_t id, char* device, int64_t predicatesId, char** columns, 140 int64_t columnsSize); 141 142 FFI_EXPORT int64_t FfiOHOSRelationalStoreUpdate(int64_t id, ValuesBucket valuesBucket, int64_t predicatesId, 143 NativeRdb::ConflictResolution conflictResolution, int32_t *errCode); 144 145 FFI_EXPORT int64_t FfiOHOSRelationalStoreDelete(int64_t id, int64_t predicatesId, int32_t *errCode); 146 147 FFI_EXPORT int32_t FfiOHOSRelationalStoreSetDistributedTables(int64_t id, char** tables, int64_t tablesSize); 148 149 FFI_EXPORT int32_t FfiOHOSRelationalStoreSetDistributedTablesType(int64_t id, char** tables, int64_t tablesSize, 150 int32_t type); 151 152 FFI_EXPORT int32_t FfiOHOSRelationalStoreSetDistributedTablesConfig(int64_t id, char** tables, int64_t tablesSize, 153 int32_t type, DistributedRdb::DistributedConfig &distributedConfig); 154 155 FFI_EXPORT char* FfiOHOSRelationalStoreObtainDistributedTableName(int64_t id, const char* device, char* table); 156 157 FFI_EXPORT int32_t FfiOHOSRelationalStoreRollBack(int64_t id); 158 159 FFI_EXPORT int32_t FfiOHOSRelationalStoreCommit(int64_t id); 160 161 FFI_EXPORT int32_t FfiOHOSRelationalStoreBeginTransaction(int64_t id); 162 163 FFI_EXPORT int32_t FfiOHOSRelationalStoreBackUp(int64_t id, const char* destName); 164 165 FFI_EXPORT int32_t FfiOHOSRelationalStoreReStore(int64_t id, const char* srcName); 166 167 FFI_EXPORT int64_t FfiOHOSRelationalStoreInsert(int64_t id, const char* table, ValuesBucket valuesBucket, 168 int32_t conflict, int32_t *errCode); 169 170 FFI_EXPORT void FfiOHOSRelationalStoreExecuteSql(int64_t id, const char* sql, int32_t *errCode); 171 172 FFI_EXPORT CArrSyncResult FfiOHOSRelationalStoreSync(int64_t id, int32_t mode, int64_t predicatesId, 173 int32_t *errCode); 174 175 FFI_EXPORT double FfiOHOSRelationalStoreGetDouble(int64_t id, int32_t columnIndex, int32_t* rtnCode); 176 177 FFI_EXPORT bool FfiOHOSRelationalStoreGoToRow(int64_t id, int32_t position, int32_t* rtnCode); 178 179 FFI_EXPORT bool FfiOHOSRelationalStoreGoToPreviousRow(int64_t id, int32_t* rtnCode); 180 181 FFI_EXPORT bool FfiOHOSRelationalStoreGoToLastRow(int64_t id, int32_t* rtnCode); 182 183 FFI_EXPORT char* FfiOHOSRelationalStoreGetColumnName(int64_t id, int32_t columnIndex, int32_t* rtnCode); 184 185 FFI_EXPORT bool FfiOHOSRelationalStoreIsColumnNull(int64_t id, int32_t columnIndex, int32_t* rtnCode); 186 187 FFI_EXPORT Asset FfiOHOSRelationalStoreGetAsset(int64_t id, int32_t columnIndex, int32_t* rtnCode); 188 189 FFI_EXPORT int32_t FfiOHOSRelationalStoreClose(int64_t id); 190 191 FFI_EXPORT int32_t FfiOHOSRelationalStoreGetColumnIndex(int64_t id, char* columnName, int32_t* rtnCode); 192 193 FFI_EXPORT char* FfiOHOSRelationalStoreGetString(int64_t id, int32_t columnIndex, int32_t* rtnCode); 194 195 FFI_EXPORT bool FfiOHOSRelationalStoreGoToFirstRow(int64_t id, int32_t* rtnCode); 196 197 FFI_EXPORT int64_t FfiOHOSRelationalStoreGetLong(int64_t id, int32_t columnIndex, int32_t* rtnCode); 198 199 FFI_EXPORT bool FfiOHOSRelationalStoreGoToNextRow(int64_t id, int32_t* rtnCode); 200 201 FFI_EXPORT CArrUI8 FfiOHOSRelationalStoreGetBlob(int64_t id, int32_t columnIndex, int32_t* rtnCode); 202 203 FFI_EXPORT bool FfiOHOSRelationalStoreGoTo(int64_t id, int32_t offset, int32_t* rtnCode); 204 205 FFI_EXPORT Assets FfiOHOSRelationalStoreGetAssets(int64_t id, int32_t columnIndex, int32_t* rtnCode); 206 207 FFI_EXPORT int32_t FfiOHOSRelationalStoreCleanDirtyData(int64_t id, const char* tableName, uint64_t cursor); 208 209 FFI_EXPORT int32_t FfiOHOSRelationalStoreBatchInsert(int64_t id, const char* tableName, ValuesBucket* values, 210 int64_t valuesSize, int64_t* insertNum); 211 212 FFI_EXPORT int64_t FfiOHOSRelationalStoreQuerySql(int64_t id, const char *sql, ValueType *bindArgs, int64_t size, 213 int32_t* errCode); 214 215 FFI_EXPORT void FfiOHOSRelationalStoreExecuteSqlBindArgs(int64_t id, char* sql, ValueType* bindArgs, 216 int64_t bindArgsSize, int32_t *errCode); 217 218 FFI_EXPORT ValuesBucket FfiOHOSRelationalStoreGetRow(int64_t id, int32_t *errCode); 219 220 FFI_EXPORT int32_t FfiOHOSRelationalStoreOn(int64_t id, const char *event, bool interProcess, void (*callback)(), 221 void (*callbackRef)()); 222 223 FFI_EXPORT int32_t FfiOHOSRelationalStoreOff(int64_t id, const char *event, bool interProcess, void (*callback)()); 224 225 FFI_EXPORT int32_t FfiOHOSRelationalStoreOffAll(int64_t id, const char *event, bool interProcess); 226 227 FFI_EXPORT int32_t FfiOHOSRelationalStoreEmit(int64_t id, const char *event); 228 } 229 } 230 } 231 232 #endif