Skip to content

Commit 6b38fb0

Browse files
committed
rag import fixes
1 parent 193dcb6 commit 6b38fb0

9 files changed

Lines changed: 81 additions & 245 deletions

File tree

sdk/runanywhere-flutter/packages/runanywhere/lib/infrastructure/download/download_service.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ class ModelDownloadService {
363363

364364
if (result != 0) {
365365
_logger.error('Native extraction failed with code: $result');
366-
throw DownloadException('Native extraction failed with code: $result');
366+
throw Exception('Native extraction failed with code: $result');
367367
}
368368
} finally {
369369
calloc.free(archivePathPtr);

sdk/runanywhere-flutter/packages/runanywhere/lib/native/dart_bridge_file_manager.dart

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -81,21 +81,23 @@ class DartBridgeFileManager {
8181

8282
/// Create directory structure (Models, Cache, Temp, Downloads).
8383
static bool createDirectoryStructure() {
84-
final fn = _lookup<Int32 Function(Pointer<RacFileCallbacksStruct>),
84+
final lib = _lib();
85+
if (lib == null || _callbacksPtr == null) return false;
86+
final fn = lib.lookupFunction<Int32 Function(Pointer<RacFileCallbacksStruct>),
8587
int Function(Pointer<RacFileCallbacksStruct>)>(
8688
'rac_file_manager_create_directory_structure');
87-
if (fn == null || _callbacksPtr == null) return false;
8889
return fn(_callbacksPtr!) == RacResultCode.success;
8990
}
9091

9192
/// Calculate directory size recursively.
9293
static int calculateDirectorySize(String path) {
93-
final fn = _lookup<
94+
final lib = _lib();
95+
if (lib == null || _callbacksPtr == null) return 0;
96+
final fn = lib.lookupFunction<
9497
Int32 Function(
9598
Pointer<RacFileCallbacksStruct>, Pointer<Utf8>, Pointer<Int64>),
9699
int Function(Pointer<RacFileCallbacksStruct>, Pointer<Utf8>,
97100
Pointer<Int64>)>('rac_file_manager_calculate_dir_size');
98-
if (fn == null || _callbacksPtr == null) return 0;
99101

100102
final pathPtr = path.toNativeUtf8();
101103
final sizePtr = calloc<Int64>();
@@ -110,12 +112,13 @@ class DartBridgeFileManager {
110112

111113
/// Get total models storage used.
112114
static int modelsStorageUsed() {
113-
final fn = _lookup<
115+
final lib = _lib();
116+
if (lib == null || _callbacksPtr == null) return 0;
117+
final fn = lib.lookupFunction<
114118
Int32 Function(Pointer<RacFileCallbacksStruct>, Pointer<Int64>),
115119
int Function(
116120
Pointer<RacFileCallbacksStruct>, Pointer<Int64>)>(
117121
'rac_file_manager_models_storage_used');
118-
if (fn == null || _callbacksPtr == null) return 0;
119122

120123
final sizePtr = calloc<Int64>();
121124
try {
@@ -128,30 +131,33 @@ class DartBridgeFileManager {
128131

129132
/// Clear cache directory.
130133
static bool clearCache() {
131-
final fn = _lookup<Int32 Function(Pointer<RacFileCallbacksStruct>),
134+
final lib = _lib();
135+
if (lib == null || _callbacksPtr == null) return false;
136+
final fn = lib.lookupFunction<Int32 Function(Pointer<RacFileCallbacksStruct>),
132137
int Function(Pointer<RacFileCallbacksStruct>)>(
133138
'rac_file_manager_clear_cache');
134-
if (fn == null || _callbacksPtr == null) return false;
135139
return fn(_callbacksPtr!) == RacResultCode.success;
136140
}
137141

138142
/// Clear temp directory.
139143
static bool clearTemp() {
140-
final fn = _lookup<Int32 Function(Pointer<RacFileCallbacksStruct>),
144+
final lib = _lib();
145+
if (lib == null || _callbacksPtr == null) return false;
146+
final fn = lib.lookupFunction<Int32 Function(Pointer<RacFileCallbacksStruct>),
141147
int Function(Pointer<RacFileCallbacksStruct>)>(
142148
'rac_file_manager_clear_temp');
143-
if (fn == null || _callbacksPtr == null) return false;
144149
return fn(_callbacksPtr!) == RacResultCode.success;
145150
}
146151

147152
/// Get cache size.
148153
static int cacheSize() {
149-
final fn = _lookup<
154+
final lib = _lib();
155+
if (lib == null || _callbacksPtr == null) return 0;
156+
final fn = lib.lookupFunction<
150157
Int32 Function(Pointer<RacFileCallbacksStruct>, Pointer<Int64>),
151158
int Function(
152159
Pointer<RacFileCallbacksStruct>, Pointer<Int64>)>(
153160
'rac_file_manager_cache_size');
154-
if (fn == null || _callbacksPtr == null) return 0;
155161

156162
final sizePtr = calloc<Int64>();
157163
try {
@@ -164,12 +170,13 @@ class DartBridgeFileManager {
164170

165171
/// Create a model folder and return its path.
166172
static String? createModelFolder(String modelId, int framework) {
167-
final fn = _lookup<
173+
final lib = _lib();
174+
if (lib == null || _callbacksPtr == null) return null;
175+
final fn = lib.lookupFunction<
168176
Int32 Function(Pointer<RacFileCallbacksStruct>, Pointer<Utf8>, Int32,
169177
Pointer<Utf8>, Size),
170178
int Function(Pointer<RacFileCallbacksStruct>, Pointer<Utf8>, int,
171179
Pointer<Utf8>, int)>('rac_file_manager_create_model_folder');
172-
if (fn == null || _callbacksPtr == null) return null;
173180

174181
final modelIdPtr = modelId.toNativeUtf8();
175182
const bufSize = 1024;
@@ -186,13 +193,14 @@ class DartBridgeFileManager {
186193

187194
/// Check if a model folder exists.
188195
static bool modelFolderExists(String modelId, int framework) {
189-
final fn = _lookup<
196+
final lib = _lib();
197+
if (lib == null || _callbacksPtr == null) return false;
198+
final fn = lib.lookupFunction<
190199
Int32 Function(Pointer<RacFileCallbacksStruct>, Pointer<Utf8>, Int32,
191200
Pointer<Int32>, Pointer<Int32>),
192201
int Function(Pointer<RacFileCallbacksStruct>, Pointer<Utf8>, int,
193202
Pointer<Int32>, Pointer<Int32>)>(
194203
'rac_file_manager_model_folder_exists');
195-
if (fn == null || _callbacksPtr == null) return false;
196204

197205
final modelIdPtr = modelId.toNativeUtf8();
198206
final existsPtr = calloc<Int32>();
@@ -206,20 +214,21 @@ class DartBridgeFileManager {
206214
}
207215

208216
/// Get combined storage information.
209-
static StorageInfo? getStorageInfo() {
210-
final fn = _lookup<
217+
static NativeStorageInfo? getStorageInfo() {
218+
final lib = _lib();
219+
if (lib == null || _callbacksPtr == null) return null;
220+
final fn = lib.lookupFunction<
211221
Int32 Function(
212222
Pointer<RacFileCallbacksStruct>, Pointer<RacFileManagerStorageInfoStruct>),
213223
int Function(Pointer<RacFileCallbacksStruct>,
214224
Pointer<RacFileManagerStorageInfoStruct>)>(
215225
'rac_file_manager_get_storage_info');
216-
if (fn == null || _callbacksPtr == null) return null;
217226

218227
final infoPtr = calloc<RacFileManagerStorageInfoStruct>();
219228
try {
220229
final result = fn(_callbacksPtr!, infoPtr);
221230
if (result != RacResultCode.success) return null;
222-
return StorageInfo(
231+
return NativeStorageInfo(
223232
deviceTotal: infoPtr.ref.deviceTotal,
224233
deviceFree: infoPtr.ref.deviceFree,
225234
modelsSize: infoPtr.ref.modelsSize,
@@ -234,21 +243,22 @@ class DartBridgeFileManager {
234243

235244
/// Check storage availability via C++ rac_file_manager_check_storage.
236245
/// Returns full availability result including warnings and recommendations.
237-
static StorageAvailability? checkStorageAvailability(int requiredBytes) {
238-
final fn = _lookup<
246+
static NativeStorageAvailability? checkStorageAvailability(int requiredBytes) {
247+
final lib = _lib();
248+
if (lib == null || _callbacksPtr == null) return null;
249+
final fn = lib.lookupFunction<
239250
Int32 Function(Pointer<RacFileCallbacksStruct>, Int64,
240251
Pointer<RacStorageAvailabilityStruct>),
241252
int Function(Pointer<RacFileCallbacksStruct>, int,
242253
Pointer<RacStorageAvailabilityStruct>)>(
243254
'rac_file_manager_check_storage');
244-
if (fn == null || _callbacksPtr == null) return null;
245255

246256
final availPtr = calloc<RacStorageAvailabilityStruct>();
247257
try {
248258
final result = fn(_callbacksPtr!, requiredBytes, availPtr);
249259
if (result != RacResultCode.success) return null;
250260
final rec = availPtr.ref.recommendation;
251-
return StorageAvailability(
261+
return NativeStorageAvailability(
252262
isAvailable: availPtr.ref.isAvailable == RAC_TRUE,
253263
requiredSpace: availPtr.ref.requiredSpace,
254264
availableSpace: availPtr.ref.availableSpace,
@@ -270,12 +280,13 @@ class DartBridgeFileManager {
270280

271281
/// Delete a model folder.
272282
static bool deleteModel(String modelId, int framework) {
273-
final fn = _lookup<
283+
final lib = _lib();
284+
if (lib == null || _callbacksPtr == null) return false;
285+
final fn = lib.lookupFunction<
274286
Int32 Function(
275287
Pointer<RacFileCallbacksStruct>, Pointer<Utf8>, Int32),
276288
int Function(Pointer<RacFileCallbacksStruct>, Pointer<Utf8>,
277289
int)>('rac_file_manager_delete_model');
278-
if (fn == null || _callbacksPtr == null) return false;
279290

280291
final modelIdPtr = modelId.toNativeUtf8();
281292
try {
@@ -290,12 +301,11 @@ class DartBridgeFileManager {
290301
// Private helpers
291302
// =========================================================================
292303

293-
static F? _lookup<T extends Function, F extends Function>(String name) {
304+
static DynamicLibrary? _lib() {
294305
try {
295-
final lib = PlatformLoader.loadCommons();
296-
return lib.lookupFunction<T, F>(name);
306+
return PlatformLoader.loadCommons();
297307
} catch (e) {
298-
_logger.debug('$name not available: $e');
308+
_logger.debug('Native library not available: $e');
299309
return null;
300310
}
301311
}
@@ -306,14 +316,14 @@ class DartBridgeFileManager {
306316
// =============================================================================
307317

308318
/// Storage availability result from C++ rac_file_manager_check_storage.
309-
class StorageAvailability {
319+
class NativeStorageAvailability {
310320
final bool isAvailable;
311321
final int requiredSpace;
312322
final int availableSpace;
313323
final bool hasWarning;
314324
final String? recommendation;
315325

316-
const StorageAvailability({
326+
const NativeStorageAvailability({
317327
required this.isAvailable,
318328
required this.requiredSpace,
319329
required this.availableSpace,
@@ -323,15 +333,15 @@ class StorageAvailability {
323333
}
324334

325335
/// Combined storage information from C++ file manager.
326-
class StorageInfo {
336+
class NativeStorageInfo {
327337
final int deviceTotal;
328338
final int deviceFree;
329339
final int modelsSize;
330340
final int cacheSize;
331341
final int tempSize;
332342
final int totalAppSize;
333343

334-
const StorageInfo({
344+
const NativeStorageInfo({
335345
required this.deviceTotal,
336346
required this.deviceFree,
337347
required this.modelsSize,

sdk/runanywhere-flutter/packages/runanywhere/lib/native/dart_bridge_model_paths.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'dart:ffi';
2+
import 'dart:io';
23

34
import 'package:ffi/ffi.dart';
45
import 'package:path_provider/path_provider.dart';
@@ -8,6 +9,7 @@ import 'package:runanywhere/foundation/logging/sdk_logger.dart';
89
import 'package:runanywhere/native/dart_bridge_download.dart';
910
import 'package:runanywhere/native/ffi_types.dart';
1011
import 'package:runanywhere/native/platform_loader.dart';
12+
import 'package:runanywhere/native/type_conversions/model_types_cpp_bridge.dart';
1113

1214
/// Model path utilities bridge.
1315
/// Wraps C++ rac_model_paths.h functions.

sdk/runanywhere-flutter/packages/runanywhere/lib/native/dart_bridge_model_registry.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,7 @@ int _listDirectoryCallback(
833833

834834
// Allocate array of string pointers
835835
final entriesPtr = calloc<Pointer<Utf8>>(entries.length);
836+
final entriesPtr = malloc<Pointer<Utf8>>(entries.length);
836837
for (var i = 0; i < entries.length; i++) {
837838
entriesPtr[i] = entries[i].toNativeUtf8();
838839
}
@@ -847,9 +848,9 @@ int _listDirectoryCallback(
847848
void _freeEntriesCallback(
848849
Pointer<Pointer<Utf8>> entries, int count, Pointer<Void> userData) {
849850
for (var i = 0; i < count; i++) {
850-
if (entries[i] != nullptr) calloc.free(entries[i]);
851+
if (entries[i] != nullptr) malloc.free(entries[i]);
851852
}
852-
calloc.free(entries);
853+
malloc.free(entries);
853854
}
854855

855856
int _isDirectoryCallback(Pointer<Utf8> path, Pointer<Void> userData) {

0 commit comments

Comments
 (0)