encodeHeader function

dynamic encodeHeader(
  1. Packet packet,
  2. int remainingLength
)

Implementation

encodeHeader(Packet packet, int remainingLength) {
  if (packet.header.packetType == PacketType.ping ||
      packet.header.packetType == PacketType.pong) {
    return [(packet.header.packetType.index << 4) | 0];
  }
  List<int> headers = [];

  var typeAndFlags = (encodeBool(false) << 3) |
      (encodeBool(packet.header.syncOnce) << 2) |
      (encodeBool(packet.header.showUnread) << 1) |
      encodeBool(packet.header.noPersist);

  headers.add(packet.header.packetType.index << 4 | 0 | typeAndFlags);
  var vLen = encodeVariableLength(remainingLength);
  headers.addAll(vLen);

  return headers;
}