register static method

void register()

Register file manager callbacks. Call during SDK init.

Implementation

static void register() {
  if (_isRegistered) return;

  _callbacksPtr = calloc<RacFileCallbacksStruct>();
  final cb = _callbacksPtr!;

  cb.ref.createDirectory = Pointer.fromFunction<RacFmCreateDirectoryNative>(
      _createDirectoryCallback, _errorDirectoryCreationFailed);
  cb.ref.deletePath = Pointer.fromFunction<RacFmDeletePathNative>(
      _deletePathCallback, _errorDeleteFailed);
  cb.ref.listDirectory = Pointer.fromFunction<RacFmListDirectoryNative>(
      _listDirectoryCallback, _errorFileNotFound);
  cb.ref.freeEntries =
      Pointer.fromFunction<RacFmFreeEntriesNative>(_freeEntriesCallback);
  cb.ref.pathExists = Pointer.fromFunction<RacFmPathExistsNative>(
      _pathExistsCallback, _falseReturn);
  cb.ref.getFileSize = Pointer.fromFunction<RacFmGetFileSizeNative>(
      _getFileSizeCallback, _negativeReturn);
  cb.ref.getAvailableSpace =
      Pointer.fromFunction<RacFmGetAvailableSpaceNative>(
          _getAvailableSpaceCallback, 0);
  cb.ref.getTotalSpace = Pointer.fromFunction<RacFmGetTotalSpaceNative>(
      _getTotalSpaceCallback, 0);
  cb.ref.userData = nullptr;

  _isRegistered = true;
  _logger.debug('File manager callbacks registered');
}