private static VssRecord CreateRecord( RecordHeader recordHeader, BufferReader recordReader) { VssRecord record = null; switch (recordHeader.Signature) { case RevisionRecord.SIGNATURE: record = CreateRevisionRecord(recordHeader, recordReader); break; case CommentRecord.SIGNATURE: record = new CommentRecord(); break; case CheckoutRecord.SIGNATURE: record = new CheckoutRecord(); break; case ProjectRecord.SIGNATURE: record = new ProjectRecord(); break; case BranchRecord.SIGNATURE: record = new BranchRecord(); break; case DeltaRecord.SIGNATURE: record = new DeltaRecord(); break; } return(record); }
public bool ReadNextRecord(VssRecord record) { while (reader.Remaining > RecordHeader.LENGTH) { try { var recordHeader = new RecordHeader(); recordHeader.Read(reader); var recordReader = reader.Extract(recordHeader.Length); // comment records always seem to have a zero CRC if (recordHeader.Signature != CommentRecord.SIGNATURE) { recordHeader.CheckCrc(); } if (recordHeader.Signature == record.Signature) { record.Read(recordReader, recordHeader); return(true); } } catch (EndOfBufferException e) { throw new RecordTruncatedException(e.Message); } } return(false); }
public void ReadRecord(VssRecord record) { try { var recordHeader = new RecordHeader(); recordHeader.Read(reader); var recordReader = reader.Extract(recordHeader.Length); // comment records always seem to have a zero CRC if (recordHeader.Signature != CommentRecord.SIGNATURE) { recordHeader.CheckCrc(); } recordHeader.CheckSignature(record.Signature); record.Read(recordReader, recordHeader); } catch (EndOfBufferException e) { throw new RecordTruncatedException(e.Message); } }
public void ReadRecord(VssRecord record, int offset) { reader.Offset = offset; ReadRecord(record); }