DcOption.deserialize constructor

DcOption.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory DcOption.deserialize(BinaryReader reader) {
  // Read [DcOption] fields.
  final flags = reader.readInt32();
  final ipv6 = (flags & 1) != 0;
  final mediaOnly = (flags & 2) != 0;
  final tcpoOnly = (flags & 4) != 0;
  final cdn = (flags & 8) != 0;
  final static = (flags & 16) != 0;
  final thisPortOnly = (flags & 32) != 0;
  final id = reader.readInt32();
  final ipAddress = reader.readString();
  final port = reader.readInt32();
  final hasSecretField = (flags & 1024) != 0;
  final secret = hasSecretField ? reader.readBytes() : null;

  // Construct [DcOption] object.
  final returnValue = DcOption(
    ipv6: ipv6,
    mediaOnly: mediaOnly,
    tcpoOnly: tcpoOnly,
    cdn: cdn,
    static: static,
    thisPortOnly: thisPortOnly,
    id: id,
    ipAddress: ipAddress,
    port: port,
    secret: secret,
  );

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