getStorageInfo static method

NativeStorageInfo? getStorageInfo()

Get combined storage information.

Implementation

static NativeStorageInfo? getStorageInfo() {
  final lib = _lib();
  if (lib == null || _callbacksPtr == null) return null;
  final fn = lib.lookupFunction<
          Int32 Function(Pointer<RacFileCallbacksStruct>,
              Pointer<RacFileManagerStorageInfoStruct>),
          int Function(Pointer<RacFileCallbacksStruct>,
              Pointer<RacFileManagerStorageInfoStruct>)>(
      'rac_file_manager_get_storage_info');

  final infoPtr = calloc<RacFileManagerStorageInfoStruct>();
  try {
    final result = fn(_callbacksPtr!, infoPtr);
    if (result != RacResultCode.success) return null;
    return NativeStorageInfo(
      deviceTotal: infoPtr.ref.deviceTotal,
      deviceFree: infoPtr.ref.deviceFree,
      modelsSize: infoPtr.ref.modelsSize,
      cacheSize: infoPtr.ref.cacheSize,
      tempSize: infoPtr.ref.tempSize,
      totalAppSize: infoPtr.ref.totalAppSize,
    );
  } finally {
    calloc.free(infoPtr);
  }
}