askarStoreOpen function
Implementation
Future<AskarResult<StoreHandle>> askarStoreOpen(
String specUri, {
StoreKeyMethod? keyMethod,
String? passKey,
String? profile,
}) async {
Pointer<Utf8> specUriPointer = nullptr;
Pointer<Utf8> keyMethodPointer = nullptr;
Pointer<Utf8> passKeyPointer = nullptr;
Pointer<Utf8> profilePointer = nullptr;
final keyMethodStr = (keyMethod == null) ? "" : keyMethod.value;
try {
specUriPointer = specUri.toNativeUtf8();
keyMethodPointer = keyMethodStr.toNativeUtf8();
passKeyPointer = (passKey ?? "").toNativeUtf8();
profilePointer = (profile ?? "").toNativeUtf8();
final callback = newCallbackWithHandle();
final initialResult = nativeAskarStoreOpen(
specUriPointer,
keyMethodPointer,
passKeyPointer,
profilePointer,
callback.nativeCallable.nativeFunction,
callback.id,
);
final completedResult = await callback.handleResult(initialResult);
return AskarResult(completedResult.errorCode, StoreHandle(completedResult.value));
} finally {
freePointer(specUriPointer);
freePointer(keyMethodPointer);
freePointer(passKeyPointer);
freePointer(profilePointer);
}
}