Example #1
0
 public void CanCreateBasicLogRecord()
 {
     Assert.DoesNotThrow(() =>
     {
         var page   = _fileManager.ResolvePage();
         _logRecord = new BasicLogRecord(page, 0);
     });
 }
Example #2
0
        public SetIntRecord(BasicLogRecord rec)
        {//通过一条不带语义的字节记录来创建一条带语义的日志记录
            txnum = rec.nextInt();
            string filename = rec.nextString();
            int    blknum   = rec.nextInt();

            blk    = new Block(filename, blknum);
            offset = rec.nextInt();
            val    = rec.nextInt();
        }
Example #3
0
        public SetStringRecord(BasicLogRecord rec)
        {
            txnum = rec.nextInt();
            string filename = rec.nextString();
            int    blknum   = rec.nextInt();

            blk    = new Block(filename, blknum);
            offset = rec.nextInt();
            val    = rec.nextString();
        }
Example #4
0
        public void CannotGetWrongNextDate()
        {
            var page = _fileManager.ResolvePage();

            page.SetDate(0, new DateTime(2020, 1, 1));

            _logRecord = new BasicLogRecord(page, -1);

            var canGetRecord = _logRecord.NextDate(out var value);

            Assert.False(canGetRecord);
            Assert.AreEqual(default(DateTime), value);
        }
Example #5
0
        public void CannotGetWrongNextString()
        {
            var page = _fileManager.ResolvePage();

            page.SetString(0, "123");

            _logRecord = new BasicLogRecord(page, -1);

            var canGetRecord = _logRecord.NextString(out var value);

            Assert.False(canGetRecord);
            Assert.AreEqual(default(string[]), value);
        }
Example #6
0
        public void CannotGetWrongNextBlob()
        {
            var page = _fileManager.ResolvePage();

            page.SetBlob(0, new byte[] { 1, 2, 3 });

            _logRecord = new BasicLogRecord(page, -1);

            var canGetRecord = _logRecord.NextBlob(out var value);

            Assert.False(canGetRecord);
            Assert.AreEqual(default(byte[]), value);
        }
Example #7
0
        public void CanGetNextDate()
        {
            var page = _fileManager.ResolvePage();

            _logRecord = new BasicLogRecord(page, 0);

            page.SetDate(0, new DateTime(2020, 1, 1));

            var canGetRecord = _logRecord.NextDate(out var value);

            Assert.True(canGetRecord);
            Assert.AreEqual(new DateTime(2020, 1, 1), value);
        }
Example #8
0
        public void CanGetNextByte()
        {
            var page = _fileManager.ResolvePage();

            _logRecord = new BasicLogRecord(page, 0);

            page.SetByte(0, 123);

            var canGetRecord = _logRecord.NextByte(out var value);

            Assert.True(canGetRecord);
            Assert.AreEqual(123, value);
        }
Example #9
0
        public void CanGetNextBlob()
        {
            var page = _fileManager.ResolvePage();

            _logRecord = new BasicLogRecord(page, 0);

            page.SetBlob(0, new byte[] { 1, 2, 3 });

            var canGetRecord = _logRecord.NextBlob(out var value);

            Assert.True(canGetRecord);
            Assert.AreEqual(new byte[] { 1, 2, 3 }, value);
        }
Example #10
0
 public StartRecord(
     ILogManager logManager,
     IBufferManager bufferManager,
     BasicLogRecord record,
     bool needOffset = true)
     : base(logManager, bufferManager, LogRecordType.Start)
 {
     if (needOffset)
     {
         _ = record.NextInt(out var _);
     }
     _ = record.NextInt(out _transactionNumber);
 }
Example #11
0
        public void CanGetNextString()
        {
            var page = _fileManager.ResolvePage();

            _logRecord = new BasicLogRecord(page, 0);

            page.SetString(0, "123");

            var canGetRecord = _logRecord.NextString(out var value);

            Assert.True(canGetRecord);
            Assert.AreEqual("123", value);
        }
Example #12
0
        public void CannotGetWrongNextBool()
        {
            var page = _fileManager.ResolvePage();

            page.SetBool(0, true);

            _logRecord = new BasicLogRecord(page, -1);


            var canGetRecord = _logRecord.NextBool(out var value);

            Assert.False(canGetRecord);
            Assert.AreEqual(default(bool), value);
        }
Example #13
0
        public SetBlobRecord(
            ILogManager logManager,
            IBufferManager bufferManager,
            BasicLogRecord record,
            bool needOffset = true)
            : base(logManager, bufferManager, LogRecordType.SetBlob)
        {
            if (needOffset)
            {
                _ = record.NextInt(out var _);
            }

            _ = record.NextInt(out _transactionNumber);
            _ = record.NextString(out var filename);
            _ = record.NextInt(out var blockNumber);

            _block = new Block(filename, blockNumber);
            _      = record.NextInt(out _offset);
            _      = record.NextBlob(out _value);
        }
Example #14
0
        public CheckpointRecord(
            ILogManager logManager,
            IBufferManager bufferManager,
            BasicLogRecord record,
            bool needOffset = true)
            : base(logManager, bufferManager, LogRecordType.Checkpoint)
        {
            if (needOffset)
            {
                _ = record.NextInt(out var _);
            }

            _ = record.NextInt(out var length);

            _transactionNumbers = new int[length];

            for (int i = 0; i < length; ++i)
            {
                record.NextInt(out _transactionNumbers[i]);
            }
        }
Example #15
0
 public StartRecord(BasicLogRecord rec)
 {
     txnum = rec.nextInt();
 }
Example #16
0
 public CheckpointRecord(BasicLogRecord rec)
 {
 }
Example #17
0
 public RollbackRecord(BasicLogRecord rec)
 {
     txnum = rec.nextInt();
 }
Example #18
0
 public CommitRecord(BasicLogRecord rec)
 {
     txnum = rec.nextInt();
 }