/// <nodoc />
        public void Write(ChangeJournalServiceProtocolWriter writer)
        {
            Contract.Requires(writer != null);

            writer.WriteVolumeGuidPath(VolumeGuidPath);
            writer.Write(JournalId);
            writer.Write(StartUsn.Value);

            writer.Write(EndUsn.HasValue);

            if (EndUsn.HasValue)
            {
                writer.Write(EndUsn.Value.Value);
            }

            writer.Write(ExtraReadCount.HasValue);

            if (ExtraReadCount.HasValue)
            {
                writer.Write(ExtraReadCount.Value);
            }

            writer.Write(TimeLimit.HasValue);

            if (TimeLimit.HasValue)
            {
                writer.Write(TimeLimit.Value.Ticks);
            }
        }
        /// <nodoc />
        public void Write(ChangeJournalServiceProtocolWriter writer)
        {
            Contract.Requires(writer != null);

            Contract.Assert(VolumeGuidPath.IsValid);
            writer.WriteVolumeGuidPath(VolumeGuidPath);
        }