Ejemplo n.º 1
0
 public Lmdb.BufferDto GetState()
 {
     return(Lmdb.NewBufferDto()
            .SetBufferFileName(_fileName)
            .SetBufferMaxBytes(_maxBytes)
            .SetBufferRecords(_records)
            .SetBufferStartPos(_startPos)
            .SetBufferPos(_pos));
 }
Ejemplo n.º 2
0
        void SetNewBuffer(Tx tx, long newStartPos)
        {
            if (_buffer != null)
            {
                throw new InvalidOperationException("Previous buffer wasn't cleaned up");
            }

            var name = string.Format("{0:0000000000}.blob", newStartPos);

            var newBuffer = Lmdb
                            .NewBufferDto()
                            .SetBufferPos(0)
                            .SetBufferStartPos(newStartPos)
                            .SetBufferMaxBytes(_maxBufferBytes)
                            .SetBufferRecords(0)
                            .SetBufferFileName(name);


            Lmdb.SetBuffer(tx, 0, newBuffer);

            _buffer = new Buffer(newBuffer, _folder);
            _buffer.OpenOrCreate();
        }