loadPlugin static method
Load a shared library and register its plugin entry-point.
Implementation
static PluginLoadResult loadPlugin(String path) {
final lib = PlatformLoader.loadCommons();
final fn = lib.lookupFunction<
Int32 Function(Pointer<Utf8>, Pointer<Pointer<Utf8>>),
int Function(Pointer<Utf8>, Pointer<Pointer<Utf8>>)>(
'rac_registry_load_plugin',
);
final pathPtr = path.toNativeUtf8();
final outNamePtr = calloc<Pointer<Utf8>>();
try {
final rc = fn(pathPtr, outNamePtr);
final namePtr = outNamePtr.value;
final name = (rc == RAC_SUCCESS && namePtr != nullptr)
? namePtr.toDartString()
: '';
return PluginLoadResult(name: name, resultCode: rc);
} finally {
calloc.free(pathPtr);
calloc.free(outNamePtr);
}
}