newCallbackWithPtrUtf8 function
Creates a new callback with a UTF-8 pointer.
Returns a Callback instance with the specified function type.
Implementation
Callback<CbFuncWithPtrUft8> newCallbackWithPtrUtf8() {
final completer = Completer<AskarCallbackResult>();
late final NativeCallable<CbFuncWithPtrUft8> nativeCallable;
void callback(int callbackId, int errorCode, Pointer<Utf8> utf8) {
completer.complete(
AskarCallbackResult(
ErrorCode.fromInt(errorCode),
true,
utf8 == nullptr ? null : utf8.toDartString(),
),
);
calloc.free(utf8);
nativeCallable.close();
}
nativeCallable = NativeCallable<CbFuncWithPtrUft8>.listener(callback);
return Callback<CbFuncWithPtrUft8>(nativeCallable, completer, nextCallbackId());
}