void EnsureWriterExists(long version) { if (_currentWriter != null) { return; } var fileName = string.Format("{0:00000000}-{1:yyyy-MM-dd-HHmmss}.dat", version, DateTime.UtcNow); var blob = _container.GetPageBlobReference(fileName); blob.Create(_pageSizeMultiplier); _currentWriter = new AppendOnlyStream(512, (i, bytes) => blob.WritePages(bytes, i), _pageSizeMultiplier); }
public void Close() { _closed = true; if (_currentWriter == null) { return; } var tmp = _currentWriter; _currentWriter = null; tmp.Dispose(); }
void EnsureWriterExists(long version) { if (_lock.Exception != null) { throw new InvalidOperationException("Can not renew lease", _lock.Exception); } if (_currentWriter != null) { return; } var fileName = string.Format("{0:00000000}-{1:yyyy-MM-dd-HHmm}.dat", version, DateTime.UtcNow); var blob = _container.GetPageBlobReference(fileName); blob.Create(1024 * 512); _currentWriter = new AppendOnlyStream(512, (i, bytes) => blob.WritePages(bytes, i), 1024 * 512); }
public void Setup() { _stream = null; const int pageSizeInBytes = 5; _appendOnlyStore = new AppendOnlyStream(pageSizeInBytes, (o, s) => { if (s.Length > 0) { if (_stream == null) { _stream = new MemoryStream(); } s.Position = 0; var bytes = new byte[s.Length]; s.Read(bytes, 0, (int)s.Length); _stream.Position = o; _stream.Write(bytes, 0, bytes.Length); } } , 100); }
void CloseWriter() { _currentWriter.Dispose(); _currentWriter = null; }