public override async Task SaveAsync(Stream stream, CancellationToken cancellationToken) { var previousToken = Interlocked.Exchange(ref _reloadToken, new ReloadToken()); await _storage.SaveAsync(Options.ModelFileName, stream, cancellationToken); previousToken?.OnReload(); }
public InMemoryModelLoader(InMemoryStorage storage) { _storage = storage ?? throw new ArgumentNullException(nameof(storage)); SaveResultFunc = async(options, json, cancellationToken) => { await _storage.SaveAsync(json, options.ModelResultFileName, cancellationToken); await Task.CompletedTask; }; LoadFunc = (options, cancellationToken) => storage.LoadAsync(options.ModelResultFileName, cancellationToken); }