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:----n7hr++ph7pegklwiOuTUcpTfRed6mXMHqYkWnVaNBkjaDOzN57D9dR0ePqux7ejRAJwKFuV4yiV0MmK2B1XTI3itbJaEP10qP9vNXi1j41LOCq5Z0CZ02rBHD6NZiTH0WLAsMC46gaSfxTS/+b6iG+QMUiTOhJfRa1gLvEdVejQfpYKs64RXSMX/j9yHfuu8AUCuatJpLbwhbkLZr8UbvIAdOigLVHW2C2VNQCFYjMaTxT0JbgTjZbTVSh3ZIM0W/2MrcJVOLG/jahYd0SRJEvu3D0/TlGgdWWZvL4+isH3QyO7V3EKKL8eL0NqL0i7RqqnRQUpl2C4cgmoediXIV6pcBoLJRMKOkFJA/QBCMg9kYQdWNiWr2TPo9IKdhw17zeUs/Ck9fdFw1zq4+LvM5n4k0oDLCi/u2/653X8yLp6vcqI1By56wTSQpjxV94L9hiN6wn8CaVW17e7ZVr1WAXyW9fpk8S27wiqRhiIf80a6G4TUqYQASZ57vG4Or5wzPIP0DmbfHompO1vB9m9m9JY/YRcFSpubnk1wmIALa6LpfPY3NYALKlChtsvzpl1uV1Gp8m6vMg3y8xmkzXY1RJwODo5E77OufBizcvIXPJwwoVMJUZdyIRFp50e7syHq28liAHqNoo94CG0Q+Rg1R8TuRpdijk6H7DkSYpgOUFw=----ATTACHMENT:----MzkwOTc2NTc2NTAxMjU3IDc4OTUzOTg2OTAzNDkyNyAzOTUzMTEwNTAzOTkyMzQ5