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;
}
}