checkStorageAvailability static method
Check storage availability via C++ rac_file_manager_check_storage. Returns full availability result including warnings and recommendations.
Implementation
static NativeStorageAvailability? checkStorageAvailability(
int requiredBytes) {
final lib = _lib();
if (lib == null || _callbacksPtr == null) return null;
final fn = lib.lookupFunction<
Int32 Function(Pointer<RacFileCallbacksStruct>, Int64,
Pointer<RacStorageAvailabilityStruct>),
int Function(Pointer<RacFileCallbacksStruct>, int,
Pointer<RacStorageAvailabilityStruct>)>(
'rac_file_manager_check_storage');
final availPtr = calloc<RacStorageAvailabilityStruct>();
try {
final result = fn(_callbacksPtr!, requiredBytes, availPtr);
if (result != RacResultCode.success) return null;
final rec = availPtr.ref.recommendation;
return NativeStorageAvailability(
isAvailable: availPtr.ref.isAvailable == RAC_TRUE,
requiredSpace: availPtr.ref.requiredSpace,
availableSpace: availPtr.ref.availableSpace,
hasWarning: availPtr.ref.hasWarning == RAC_TRUE,
recommendation: rec != nullptr ? rec.toDartString() : null,
);
} finally {
calloc.free(availPtr);
}
}