using System; using System.IO; using NpgsqlTypes; namespace Npgsql.Replication; /// /// A message representing a section of the WAL data stream. /// public class XLogDataMessage : ReplicationMessage { /// /// A section of the WAL data stream that is raw WAL data in physical replication or decoded with the selected /// logical decoding plugin in logical replication. It is only valid until the next /// is requested from the stream. /// /// /// A single WAL record is never split across two XLogData messages. /// When a WAL record crosses a WAL page boundary, and is therefore already split using continuation records, /// it can be split at the page boundary. In other words, the first main WAL record and its continuation /// records can be sent in different XLogData messages. /// public Stream Data { get; private set; } = default!; internal XLogDataMessage Populate( NpgsqlLogSequenceNumber walStart, NpgsqlLogSequenceNumber walEnd, DateTime serverClock, Stream data) { base.Populate(walStart, walEnd, serverClock); Data = data; return this; } }