private void TraverseChunk(TFChunk.TFChunk chunk, Action<PrepareLogRecord> processPrepare, Action<CommitLogRecord> processCommit, Action<SystemLogRecord> processSystem) { var result = chunk.TryReadFirst(); while (result.Success) { var record = result.LogRecord; switch (record.RecordType) { case LogRecordType.Prepare: { var prepare = (PrepareLogRecord)record; processPrepare(prepare); break; } case LogRecordType.Commit: { var commit = (CommitLogRecord)record; processCommit(commit); break; } case LogRecordType.System: { var system = (SystemLogRecord)record; processSystem(system); break; } default: throw new ArgumentOutOfRangeException(); } result = chunk.TryReadClosestForward((int)result.NextPosition); } }
public void there_is_no_closest_forward_record_to_pos_zero() { var res = _chunk.TryReadClosestForward(0); Assert.IsFalse(res.Success); }
public void the_next_closest_forward_cant_be_read() { var res = _scavengedChunk.TryReadClosestForward((int)_res1.NewPosition); Assert.IsFalse(res.Success); }
public void no_record_can_be_read_as_closest_forward_record() { Assert.IsFalse(_chunk.TryReadClosestForward(0).Success); }