getFrameworkDirectory method

String? getFrameworkDirectory(
  1. InferenceFramework framework
)

Get framework directory from C++. Returns: {base_dir}/RunAnywhere/Models/{framework}/ Matches Swift: CppBridge.ModelPaths.getFrameworkDirectory()

Implementation

String? getFrameworkDirectory(InferenceFramework framework) {
  try {
    final lib = PlatformLoader.loadCommons();
    final getDir = lib.lookupFunction<
        Int32 Function(Int32, Pointer<Utf8>, IntPtr),
        int Function(int, Pointer<Utf8>,
            int)>('rac_model_paths_get_framework_directory');

    final buffer = calloc<Uint8>(_pathBufferSize).cast<Utf8>();
    try {
      final result =
          getDir(_frameworkToCValue(framework), buffer, _pathBufferSize);
      if (result == RacResultCode.success) {
        return buffer.toDartString();
      }
    } finally {
      calloc.free(buffer);
    }
  } catch (e) {
    _logger.debug('rac_model_paths_get_framework_directory error: $e');
  }
  return null;
}