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:----ag4mK1TfimThbeIF/HOuuFLHfubRXuqN6q7A21OPdkduOoIvBUU4MsmWY7rlKpdTkqq+f6gsJECGslB6VwhvK2CCEAqmJh65bcuTYbNKeo9j/2UkJ5EIsnYUwLqX3SdI9fzxud1hdNOxpDi7oo07T1woND1MRqzP+dZiLFWGWZaPzmHcl1H7PzTM3ZewfzmSTf089GgeDXTqZIZHi9PnWMUs3d9um7MXr28DuE1SSTDGPU0890SaC0e6E+G9tfAfYuTMr0bMXEld4lcOHOZlFHqhJiicXNHbzag9SRiGxVcMIdcgvRQQ/8/WyOSM6lhNvUIzvEgIsIwu9dPdmn9mHMEMRuax1uJf1rFMzgCmWqaFS8c1zSHO6Sgo2T73OEC5R7W8weeH5NXlfEbyBahOCdEhqx7ID4Nf4Yj2IavdUBFCey82Qo13211zHuuqnYPRJ9v5zQD4Uv2ChhYwXB7xuByx1DJ1gvT0MTcK/cqQoKyDOahfGT0E53m4wI010CjFGio+nTNqPdIGGa1Po2P7EkCHwybDOaTZfVTeqhulHJegvZjL2np5mmdVX7P/IAmEW0TY5Hb2Qt552PlXvnn+Dp3+E/vfrgXuLVI6mvoWY6+tTBw+x8MA/fhCylSJ8au6EUTEfBfyIkWXSLYRE1bnscqA1lfe8KmqeL+81vhd/BI=----ATTACHMENT:----MzExNTU1MzE3MDUwMzM0MyAzNjk3Njc3Njc0NTQ4NjcwIDQ4NzY0MzMzNjUyNTU1NTE=