Esempio n. 1
0
def get_database_string(ref, prop_id):
    # type: (int, int) -> typing.Text
    value_size = _funcs.nxdb_get_property_size(ref, prop_id)

    ref_ctypes = _ctypedefs.nxDatabaseRef_t(ref)
    prop_id_ctypes = _ctypedefs.u32(prop_id)
    prop_size_ctypes = _ctypedefs.u32(value_size)
    value_ctypes = ctypes.create_string_buffer(value_size)
    result = _cfuncs.lib.nxdb_get_property(ref_ctypes, prop_id_ctypes,
                                           prop_size_ctypes, value_ctypes)
    _errors.check_for_error(result.value)
    return value_ctypes.value.decode("ascii")
Esempio n. 2
0
def get_database_ref_array(ref, prop_id):
    # type: (int, int) -> typing.Iterable[int]
    value_size = _funcs.nxdb_get_property_size(ref, prop_id)
    elements = value_size // _ctypedefs.nxDatabaseRef_t.BYTES

    ref_ctypes = _ctypedefs.nxDatabaseRef_t(ref)
    prop_id_ctypes = _ctypedefs.u32(prop_id)
    prop_size_ctypes = _ctypedefs.u32(value_size)
    value_ctypes = (_ctypedefs.nxDatabaseRef_t * (elements))()  # type: ignore
    result = _cfuncs.lib.nxdb_get_property(ref_ctypes, prop_id_ctypes,
                                           prop_size_ctypes, value_ctypes)
    _errors.check_for_error(result.value)
    for value in value_ctypes:
        yield value.value
Esempio n. 3
0
def get_database_ref_array_len(ref, prop_id):
    # type: (int, int) -> int
    value_size = _funcs.nxdb_get_property_size(ref, prop_id)
    elements = value_size // _ctypedefs.nxDatabaseRef_t.BYTES
    return elements