save<T> method

Future<T> save<T>(
  1. KdbxFile file,
  2. FileSaveCallback<T> saveBytes
)

Saves the given file.

Implementation

Future<T> save<T>(KdbxFile file, FileSaveCallback<T> saveBytes) async {
  _logger.finer('Saving ${file.body.rootGroup.uuid} '
      '(locked: ${file.saveLock.locked})');
  return file.saveLock.synchronized(() async {
    final savedAt = TimeSequence.now();
    final bytes = await _saveSynchronized(file);

    _logger.fine('Saving bytes.');
    final ret = await saveBytes(bytes);
    _logger.fine('Saved bytes.');

    file.onSaved(savedAt);
    return ret;
  });
}