private function readEnum()

in src/Apache/Ignite/Internal/Binary/BinaryCommunicator.php [262:277]


    private function readEnum(MessageBuffer $buffer): EnumItem
    {
        $enumItem = new EnumItem($buffer->readInteger());
        $ordinal = $buffer->readInteger();
        $enumItem->setOrdinal($ordinal);
        $type = $this->typeStorage->getType($enumItem->getTypeId());
        if (!$type || !$type->isEnum()) {
            BinaryUtils::enumSerializationError(false, sprintf('enum type id "%d" is not registered', $enumItem->getTypeId()));
        } elseif (!$type->getEnumValues() || count($type->getEnumValues()) <= $ordinal) {
            BinaryUtils::enumSerializationError(false, 'type mismatch');
        }
        $enumValues = $type->getEnumValues();
        $enumItem->setName($enumValues[$ordinal][0]);
        $enumItem->setValue($enumValues[$ordinal][1]);
        return $enumItem;
    }