public Task BackupAsync(BackupOption option, TimeSpan timeout, CancellationToken cancellationToken, Func <BackupInfo, CancellationToken, Task <bool> > backupCallback)
        {
            string stateBin = Path.Combine(Path.GetTempPath(), "state.bin");

            using (var fs = File.Create(stateBin))
            {
                _store.Serialize(fs);
            }
            var info = new BackupInfo(Path.GetDirectoryName(stateBin), option, new BackupInfo.BackupVersion());

            return(backupCallback(info, CancellationToken.None));
        }