MessageService.deserialize constructor

MessageService.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory MessageService.deserialize(BinaryReader reader) {
  // Read [MessageService] fields.
  final flags = reader.readInt32();
  final out = (flags & 2) != 0;
  final mentioned = (flags & 16) != 0;
  final mediaUnread = (flags & 32) != 0;
  final silent = (flags & 8192) != 0;
  final post = (flags & 16384) != 0;
  final legacy = (flags & 524288) != 0;
  final id = reader.readInt32();
  final hasFromIdField = (flags & 256) != 0;
  final fromId = hasFromIdField ? reader.readObject() as PeerBase : null;
  final peerId = reader.readObject() as PeerBase;
  final hasReplyToField = (flags & 8) != 0;
  final replyTo =
      hasReplyToField ? reader.readObject() as MessageReplyHeaderBase : null;
  final date = reader.readDateTime();
  final action = reader.readObject() as MessageActionBase;
  final hasTtlPeriodField = (flags & 33554432) != 0;
  final ttlPeriod = hasTtlPeriodField ? reader.readInt32() : null;

  // Construct [MessageService] object.
  final returnValue = MessageService(
    out: out,
    mentioned: mentioned,
    mediaUnread: mediaUnread,
    silent: silent,
    post: post,
    legacy: legacy,
    id: id,
    fromId: fromId,
    peerId: peerId,
    replyTo: replyTo,
    date: date,
    action: action,
    ttlPeriod: ttlPeriod,
  );

  // Now return the deserialized [MessageService].
  return returnValue;
}