Source code for qlazy.lib.observable_base_c

# -*- coding: utf-8 -*-
""" wrapper functions for ObservableBase """
import ctypes
from ctypes.util import find_library
import pathlib

from qlazy.util import get_lib_ext
from qlazy.ObservableBase import ObservableBase

lib = ctypes.CDLL(str(pathlib.Path(__file__).with_name('libqlz.'+get_lib_ext())))

[docs]def observable_base_init(ostr): """ initialize ObservableBase object """ c_str = ctypes.create_string_buffer(ostr.encode('utf-8')) observ = None c_observ = ctypes.c_void_p(observ) lib.observable_base_init.restype = ctypes.c_bool lib.observable_base_init.argtypes = [ctypes.POINTER(ctypes.c_char), ctypes.POINTER(ctypes.c_void_p)] ret = lib.observable_base_init(c_str, c_observ) if ret is False: raise ValueError("can't initialize ObservableBase object.") return c_observ
[docs]def observable_base_free(ob): """ free memory of ObservableBase object """ lib.observable_base_free.argtypes = [ctypes.POINTER(ObservableBase)] lib.observable_base_free(ctypes.byref(ob))