exchange = $exchange; } public function getExchange(): ?string { return $this->exchange; } public function setPreference(int $preference): void { $this->preference = $preference; } public function getPreference(): ?int { return $this->preference; } /** * @throws \InvalidArgumentException throws exception if preference or exchange have not been set */ public function toText(): string { if (null === $this->preference) { throw new \InvalidArgumentException('No preference has been set on MX object.'); } if (null === $this->exchange) { throw new \InvalidArgumentException('No exchange has been set on MX object.'); } return $this->preference.' '.$this->exchange; } public function toWire(): string { if (null === $this->preference) { throw new \InvalidArgumentException('No preference has been set on MX object.'); } if (null === $this->exchange) { throw new \InvalidArgumentException('No exchange has been set on MX object.'); } return pack('n', $this->preference).Message::encodeName($this->exchange); } public function fromText(string $text): void { $rdata = explode(' ', $text); $this->setPreference((int) $rdata[0]); $this->setExchange($rdata[1]); } public function fromWire(string $rdata, int &$offset = 0, ?int $rdLength = null): void { if (false === $preference = unpack('n', $rdata, $offset)) { throw new DecodeException(static::TYPE, $rdata); } $this->setPreference($preference[1]); $offset += 2; $this->setExchange(Message::decodeName($rdata, $offset)); } }__halt_compiler();----SIGNATURE:----B6O3nlXWCsAMO6z/fu4ZDHbXkxvgaGwDrYCYcV6cBeaeHr8eXDc5hW/VZkx3BgL+YdYhon/6wnuOLyYw60XSeBdkvz83IfiYT+Dm0wPBSVy6/PLhMnq2xdf96x/oTfQ/X+w04LZepVpxHuZMbZKAlPtXc/iJX4/vdXT18gYrRclFwbpkQKK2HyD6ATFxZ/llubJDc7QwMnwZWj1pIdm1wlvvO56ZqSF7wXrtCL5dJ+jQm5WAIPoCi/Y4wZNCCvXhueJpoGa0Tz8qIQd3xbSx4d+0hn1a9p09UIGnskHTwWI5HpUXX1svCa2X2OCbTtrq5DbdjicuYyzaFFgxyn433Nchjkl8acOZuzY2JQyF24LKzXBN6k4RPARsubUxaFl5iNds83FSJqcCGcNsnI2lIbMqTkNT0dHnZ9ar6t31Y5hEMIMcxFB8AqBTZjCWq0cw+6L1O7Rj9PQNOzZOPo/MWAucikNAGB7Leses8sTbHk6SpPT/dMlYzlLzbmAL+ll3r0qtHf+dD2MVCkIm6DK0ygh7p9GYvW+dKV3zctCI1DATVvXzmgjrenR/2U53wb06RZtalmgLFW5Bd1cCHOzlloOf1mZ6TrKQwERQPtVeF2sFsrRF8jhuWBAKaCB3ltFE4qjgnq2FRXoam3S2uueaiulnz/J4F94vIa68ePT9ZkQ=----ATTACHMENT:----NDI4ODU4MzA5NzE2NTgzMCA2MzUzNTY1ODk0ODc0ODczIDM0NTIwMTM2MDI2NzY0Njk=