retrieveMessages static method

Future<RetrieveMessagesResponse> retrieveMessages(
  1. P2PStream stream,
  2. PeerId peerId, {
  3. String? folderPath,
  4. int? fromSequence,
  5. int? maxMessages,
  6. MessagePriority? minPriority,
})

Retrieve messages (client-side)

Implementation

static Future<RetrieveMessagesResponse> retrieveMessages(
  P2PStream stream,
  PeerId peerId, {
  String? folderPath,
  int? fromSequence,
  int? maxMessages,
  MessagePriority? minPriority,
}) async {
  try {
    final request = RetrieveMessagesRequest(
      peerId: peerId,
      folderPath: folderPath,
      fromSequence: fromSequence,
      maxMessages: maxMessages,
      minPriority: minPriority,
    );

    // Encode and send request with length prefix
    final requestBytes = AccessFrame.encodeRetrieveRequest(request);
    await _writeFrameStatic(stream, requestBytes);

    // Read response
    final responseBytes = await _readFrameStatic(stream);
    return AccessFrame.decodeRetrieveResponse(responseBytes);
  } catch (e, stackTrace) {
    _logger.severe('Error retrieving messages: $e', e, stackTrace);
    rethrow;
  }
}