public virtual void SetReadyToFlush() { System.Diagnostics.Debug.Assert(IsFlushed(), "previous data not flushed yet"); EditsDoubleBuffer.TxnBuffer tmp = bufReady; bufReady = bufCurrent; bufCurrent = tmp; }
public EditsDoubleBuffer(int defaultBufferSize) { // current buffer for writing // buffer ready for flushing initBufferSize = defaultBufferSize; bufCurrent = new EditsDoubleBuffer.TxnBuffer(initBufferSize); bufReady = new EditsDoubleBuffer.TxnBuffer(initBufferSize); }
/// <exception cref="System.IO.IOException"/> public virtual void Close() { Preconditions.CheckNotNull(bufCurrent); Preconditions.CheckNotNull(bufReady); int bufSize = bufCurrent.Size(); if (bufSize != 0) { throw new IOException("FSEditStream has " + bufSize + " bytes still to be flushed and cannot be closed." ); } IOUtils.Cleanup(null, bufCurrent, bufReady); bufCurrent = bufReady = null; }