public void CanCreateBasicLogRecord() { Assert.DoesNotThrow(() => { var page = _fileManager.ResolvePage(); _logRecord = new BasicLogRecord(page, 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(); }
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(); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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]); } }
public StartRecord(BasicLogRecord rec) { txnum = rec.nextInt(); }
public CheckpointRecord(BasicLogRecord rec) { }
public RollbackRecord(BasicLogRecord rec) { txnum = rec.nextInt(); }
public CommitRecord(BasicLogRecord rec) { txnum = rec.nextInt(); }