writeDelimited function

Future<void> writeDelimited(
  1. P2PStream stream,
  2. GeneratedMessage message
)

Writes a varint length-prefixed message to the P2PStream.

stream: The P2PStream's sink to write to. message: The protobuf message to serialize and send.

Implementation

Future<void> writeDelimited(P2PStream stream, GeneratedMessage message) async {
  final messageBytes = message.writeToBuffer();
  final lengthBytes = encodeVarint(messageBytes.length);

  final fullMessage = BytesBuilder(copy: false);
  fullMessage.add(lengthBytes);
  fullMessage.add(messageBytes);

  await stream.write(fullMessage.toBytes());
}