/// <nodoc /> public static QueryJournalRequest Read(ChangeJournalServiceProtocolReader reader) { Contract.Requires(reader != null); var response = new QueryJournalRequest(reader.ReadVolumeGuidPath()); return(response); }
/// <nodoc /> public static ReadJournalResponse Read(ChangeJournalServiceProtocolReader reader) { Contract.Requires(reader != null); var response = new ReadJournalResponse( status: reader.ReadUsnJournalReadStatus(), nextUsn: new Usn(reader.ReadUInt64()), timeout: reader.ReadBoolean()); return(response); }
/// <nodoc /> public static ReadJournalRequest Read(ChangeJournalServiceProtocolReader reader) { Contract.Requires(reader != null); return(new ReadJournalRequest( reader.ReadVolumeGuidPath(), journalId: reader.ReadUInt64(), startUsn: new Usn(reader.ReadUInt64()), endUsn: reader.ReadBoolean() ? new Usn(reader.ReadUInt64()) : (Usn?)null, extraReadCount: reader.ReadBoolean() ? reader.ReadInt32() : (int?)null, timeLimit: reader.ReadBoolean() ? TimeSpan.FromTicks(reader.ReadInt64()) : (TimeSpan?)null)); }
public static VolumeGuidPath ReadVolumeGuidPath(this ChangeJournalServiceProtocolReader reader) { Contract.Requires(reader != null); string maybePath = reader.ReadString(); VolumeGuidPath path; if (!VolumeGuidPath.TryCreate(maybePath, out path)) { throw new BuildXLException("Expected a volume GUID path"); } return(path); }
public static ReadUsnJournalStatus ReadUsnJournalReadStatus(this ChangeJournalServiceProtocolReader reader) { Contract.Requires(reader != null); var readStatusValue = reader.ReadByte(); ReadUsnJournalStatus readStatus; if (!EnumTraits <ReadUsnJournalStatus> .TryConvert(readStatusValue, out readStatus)) { throw new BuildXLException("Invalid ReadUsnJournalStatus"); } return(readStatus); }
public static QueryUsnJournalData ReadUsnJournalData(this ChangeJournalServiceProtocolReader reader) { Contract.Requires(reader != null); var data = new QueryUsnJournalData { UsnJournalId = reader.ReadUInt64(), FirstUsn = new Usn(reader.ReadUInt64()), NextUsn = new Usn(reader.ReadUInt64()), LowestValidUsn = new Usn(reader.ReadUInt64()), MaxUsn = new Usn(reader.ReadUInt64()), MaximumSize = reader.ReadUInt64(), AllocationDelta = reader.ReadUInt64() }; return(data); }
public static QueryUsnJournalResult ReadQueryUsnJournalResult(this ChangeJournalServiceProtocolReader reader) { Contract.Requires(reader != null); var queryStatusValue = reader.ReadInt32(); QueryUsnJournalStatus queryStatus; if (!EnumTraits <QueryUsnJournalStatus> .TryConvert(queryStatusValue, out queryStatus)) { throw new BuildXLException("Invalid QueryUsnJournalStatus"); } if (queryStatus == QueryUsnJournalStatus.Success) { QueryUsnJournalData data = reader.ReadUsnJournalData(); return(new QueryUsnJournalResult(queryStatus, data)); } return(new QueryUsnJournalResult(queryStatus, data: null)); }