query method
同步查询。返回值已是 Dart 侧的 String(native 缓冲内容已 copy 走)。
Implementation
String query(Pointer<Void> handle, String apiName, String id, String jsonParam) {
if (handle == nullptr) return '';
final namePtr = apiName.toNativeUtf8();
final idPtr = id.toNativeUtf8();
final paramPtr = jsonParam.toNativeUtf8();
try {
final resultPtr = _queryFn(handle, namePtr, idPtr, paramPtr);
if (resultPtr == nullptr) return '';
// native 侧返回的是 thread_local 缓冲,立即 copy。
return resultPtr.toDartString();
} finally {
calloc.free(namePtr);
calloc.free(idPtr);
calloc.free(paramPtr);
}
}