def _iter_res()

in sparkey/__init__.py [0:0]


def _iter_res(iterator, log):
    state = _logiter_state(iterator)

    if state != IterState.ACTIVE:
        raise StopIteration()
    type_ = _logiter_type(iterator)

    keylen = _logiter_keylen(iterator)
    string_buffer = _create_string_buffer(keylen)
    length = _c_ulonglong()
    _logiter_fill_key(iterator, log, keylen, string_buffer, _byref(length))

    if length.value != keylen:
        raise SparkeyException("Invalid keylen, expected %s but got %s" %
                               (keylen, length.value))

    key = string_buffer.raw
    valuelen = _logiter_valuelen(iterator)
    string_buffer = _create_string_buffer(valuelen)
    _logiter_fill_value(iterator, log, valuelen, string_buffer, _byref(length))
    if length.value != valuelen:
        raise SparkeyException("Invalid valuelen, expected %s but got %s" %
                               (valuelen, length.value))
    value = string_buffer.raw
    return key, value, type_