public void Dispose() { StreamStore?.Dispose(); HttpClient?.Dispose(); _server?.Dispose(); _logCapture?.Dispose(); }
public Task <AppendResult> WriteNMessages(string streamId, int n) => StreamStore.AppendToStream( streamId, ExpectedVersion.Any, Enumerable.Range(0, n) .Select(_ => new NewStreamMessage(Guid.NewGuid(), "type", "{}", "{}")) .ToArray());
private Stream(StreamStore streamStore, string bucketId, string streamId, ISnapshot snapshot, IEnumerable <ICommit> commits, bool isFixedRevision, IDateTimeProvider dateTimeProvider, ILogger logger) { if (streamStore == null) { throw new ArgumentNullException(nameof(streamStore)); } if (commits == null) { throw new ArgumentNullException(nameof(commits)); } _streamStore = streamStore; BucketId = bucketId; StreamId = streamId; Snapshot = snapshot; IsReadOnly = isFixedRevision; _dateTimeProvider = dateTimeProvider; _logger = logger; ExecuteExtensions(commits); _commits.AddRange(commits); }
public Task <OpenStreamResult> GetContentAsync(OperationContext context, string hash, string downloadUrl) { return(context.PerformOperationAsync( Tracer, async() => { var contentHash = new ContentHash(hash); var openResult = await StreamStore.OpenStreamAsync(context, contentHash); if (openResult.Code == OpenStreamResult.ResultCode.ContentNotFound) { await EnsureContentLocalAsync(context, hash, downloadUrl); openResult = await StreamStore.OpenStreamAsync(context, contentHash); } return openResult; }, extraStartMessage: $"Hash={hash}", extraEndMessage: r => $"Hash={hash}, Size={r.StreamWithLength?.Length ?? -1}" )); }
private static IRandomAccessStore GetReaderForStrategy(AccessStrategy strategy, FileInfo fi) { IRandomAccessStore reader; switch (strategy) { case AccessStrategy.MemoryMapped: reader = new MemoryMappedStore(fi); break; case AccessStrategy.Streams: reader = new StreamStore(fi); break; default: throw new Exception("Unexpected access strategy: " + strategy); } return(reader); }
public static async Task <Stream> OpenAsync(StreamStore streamStore, string bucketId, string streamId, long revision, IDateTimeProvider dateTimeProvider, ILogger logger, CancellationToken cancellation) { if (streamStore == null) { throw new ArgumentNullException(nameof(streamStore)); } if (revision < 0) { throw new ArgumentOutOfRangeException(nameof(revision)); } var snapshot = await streamStore._persistence.GetSnapshotAsync(bucketId, streamId, revision, cancellation); var commits = await streamStore._persistence.GetCommitsAsync(bucketId, streamId, (snapshot?.StreamRevision + 1) ?? default, revision, cancellation).ToList() ?? Enumerable.Empty <ICommit>(); var isFixedRevision = revision != default; var result = new Stream(streamStore, bucketId, streamId, snapshot, commits, isFixedRevision, dateTimeProvider, logger); if (isFixedRevision && result.StreamRevision != revision) { throw new StorageException($"Unable to load stream in revision {revision}."); } return(result); }
public void Dispose() { HttpClient.Dispose(); StreamStore.Dispose(); }