Esempio n. 1
0
 public virtual void SetReadyToFlush()
 {
     System.Diagnostics.Debug.Assert(IsFlushed(), "previous data not flushed yet");
     EditsDoubleBuffer.TxnBuffer tmp = bufReady;
     bufReady   = bufCurrent;
     bufCurrent = tmp;
 }
Esempio n. 2
0
 public EditsDoubleBuffer(int defaultBufferSize)
 {
     // current buffer for writing
     // buffer ready for flushing
     initBufferSize = defaultBufferSize;
     bufCurrent     = new EditsDoubleBuffer.TxnBuffer(initBufferSize);
     bufReady       = new EditsDoubleBuffer.TxnBuffer(initBufferSize);
 }
Esempio n. 3
0
        /// <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;
        }