getModelFolder method

String? getModelFolder(
  1. String modelId,
  2. InferenceFramework framework
)

Get model folder from C++. Returns: {base_dir}/RunAnywhere/Models/{framework}/{modelId}/ Matches Swift: CppBridge.ModelPaths.getModelFolder()

Implementation

String? getModelFolder(String modelId, InferenceFramework framework) {
  try {
    final lib = PlatformLoader.loadCommons();
    final getFolder = lib.lookupFunction<
        Int32 Function(Pointer<Utf8>, Int32, Pointer<Utf8>, IntPtr),
        int Function(Pointer<Utf8>, int, Pointer<Utf8>,
            int)>('rac_model_paths_get_model_folder');

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