parse static method

  1. @Deprecated('This method will be removed from public API. ' 'Please file a new issue on GitHub if you are using it.')
XLogDataMessage parse(
  1. Uint8List bytes,
  2. Encoding encoding, {
  3. CodecContext? codecContext,
})

Parses the XLogDataMessage

If XLogDataMessage.data is a LogicalReplicationMessage, then the method will return a XLogDataLogicalMessage with that message. Otherwise, it'll return XLogDataMessage with raw data.

Implementation

@Deprecated('This method will be removed from public API. '
    'Please file a new issue on GitHub if you are using it.')
static XLogDataMessage parse(
  Uint8List bytes,
  Encoding encoding, {
  CodecContext? codecContext,
}) {
  final reader = PgByteDataReader(
      codecContext:
          codecContext ?? CodecContext.withDefaults(encoding: encoding))
    ..add(bytes);
  final walStart = LSN(reader.readUint64());
  final walEnd = LSN(reader.readUint64());
  final time = dateTimeFromMicrosecondsSinceY2k(reader.readUint64());

  final message =
      tryParseLogicalReplicationMessage(reader, reader.remainingLength);
  if (message != null) {
    return XLogDataLogicalMessage(
      message: message,
      bytes: bytes,
      time: time,
      walEnd: walEnd,
      walStart: walStart,
    );
  } else {
    return XLogDataMessage(
      bytes: bytes,
      time: time,
      walEnd: walEnd,
      walStart: walStart,
    );
  }
}