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;
 }