Ppeixianzhonglicense and 53.4
7db74aee创建于 2024年7月19日历史提交
/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved.
 */

package kv4cj

foreign {
    func initializeMMKV_c(rootDir: CString, logLevel: MMKVLogLevel, handler: MMKVHandler): Unit
    func onExit_c(): Unit
    func defaultMMKV_c(mode: UInt32, cryptKey: CString): UInt64
    func mmkvWithID_c(mmapID: CString, mode: UInt32, cryptKey: CString, rootPath: CString): UInt64

    func setBool_c(kv: UInt64, key: CString, value: Bool): Bool
    func setInt32_t_c(mmkv: UInt64, key: CString, value: Int32): Bool
    func setUint32_t_c(mmkv: UInt64, key: CString, value: UInt32): Bool
    func setInt64_t_c(mmkv: UInt64, key: CString, value: Int64): Bool
    func setUint64_t_c(mmkv: UInt64, key: CString, value: UInt64): Bool
    func setFloat_c(mmkv: UInt64, key: CString, value: Float32): Bool
    func setDouble_c(mmkv: UInt64, key: CString, value: Float64): Bool
    func setString_c(mmkv: UInt64, key: CString, value: CString): Bool
    func setBytes_c(kv: UInt64, key: CString, value: CPointer<ByteArray>): Bool
    func setStringSet_c(kv: UInt64, key: CString, value: CPointer<DataList>): Bool

    func getBool_c(kv: UInt64, key: CString, defaultValue: Bool): Bool
    func getInt32_c(mmkv: UInt64, key: CString, defaultValue: Int32): Int32
    func getUInt32_c(mmkv: UInt64, key: CString, defaultValue: UInt32): UInt32
    func getInt64_c(mmkv: UInt64, key: CString, defaultValue: Int64): Int64
    func getUInt64_c(mmkv: UInt64, key: CString, defaultValue: UInt64): UInt64
    func getFloat_c(mmkv: UInt64, key: CString, defaultValue: Float32): Float32
    func getDouble_c(mmkv: UInt64, key: CString, defaultValue: Float64): Float64
    func getString_c(mmkv: UInt64, key: CString): CString
    func getBytes_c(kv: UInt64, key: CString): CPointer<ByteArray>
    func getStringSet_c(kv: UInt64, key: CString): CPointer<DataList>

    func removeValuesForKeys_c(kv: UInt64, arrKeys: CPointer<DataList>): Unit
    func removeValueForKey_c(kv: UInt64, key: CString): Unit
    func clearAll_c(kv: UInt64): Unit
    func trim_c(kv: UInt64): Unit
    func close_c(kv: UInt64): Unit
    func sync_c(kv: UInt64, sync: Bool): Unit
    func clearMemoryCache_c(kv: UInt64): Unit

    func lock_c(kv: UInt64): Unit
    func unlock_c(kv: UInt64): Unit
    func tryLock_c(kv: UInt64): Bool

    func backupOne(mmapID: CString, dstDir: CString, srcDir: CString): Bool
    func restoreOne(mmapID: CString, srcDir: CString, dstDir: CString): Bool
    func backupAll(dstDir: CString, srcDir: CString): UInt64
    func restoreAll(srcDir: CString, dstDir: CString): UInt64

    func setLogLevel_c(level: MMKVLogLevel): Unit
    func setCallbackHandler(handler: MMKVHandler): Unit
    func isFileValid_c(mmapID: CString, rootPath: CString): Bool
    func pageSize_c(): Int64

    func writeValueToBuffer_c(mmkv: UInt64, key: CString, ptr: CPointer<Unit>, size: Int32): Int32
    func getValueSize_c(mmkv: UInt64, key: CString, actualSize: Bool): UInt64
    func containsKey_c(mmkv: UInt64, key: CString): Bool
    func count_c(mmkv: UInt64): UInt64
    func totalSize_c(mmkv: UInt64): UInt64
    func actualSize_c(mmkv: UInt64): UInt64
    func allKeys_c(mmkv: UInt64): CPointer<DataList>
    func mmapID_c(mmkv: UInt64): CString

    func cryptKey_c(mmkv: UInt64): CString
    func reKey_c(mmkv: UInt64, cryptKey: CString): Bool
    func checkReSetCryptKey_c(mmkv: UInt64, cryptKey: CString): Bool


    func getSizeofSize_t(): Int64
    func malloc(size: UIntNative): CPointer<Unit>
    func free(ptr: CPointer<Unit>): Unit
}