Esempio n. 1
0
def find_library(name):
    # this fallback is good enough ;-)
    try:
        library = NativeLibrary.getInstance(name)
    except UnsatisfiedLinkError:
        return None

    return library.file.path
Esempio n. 2
0
try:
    # jip install net.java.dev.jna:jna:X.Y.Z --> javalib/jna*.jar
    # java -jar ivy.jar -dependency net.java.dev.jna jna '[X.Y,)' -types jar -retrieve 'javalib/[artifact]-[revision](-[classifier]).[ext]'
    sys.path.extend(glob.glob('javalib/jna*.jar'))
    from com.sun.jna import NativeLibrary
except Exception as exc:
    raise Exception(
        'Possibly missing javalib/jna*.jar -- check javalib directory.\n' +
        repr(exc))

__all__ = ['fact_i', 'fact_lp', 'expt_i', 'expt_lp']

MODULE_LOGGER = logging.getLogger(__name__)

ffi_jna = NativeLibrary.getInstance('intro_c-practice')

_fact_i = ffi_jna.getFunction('fact_i')
_fact_lp = ffi_jna.getFunction('fact_lp')

_expt_i = ffi_jna.getFunction('expt_i')
_expt_lp = ffi_jna.getFunction('expt_lp')


def fact_i(num):
    func_name = inspect.stack()[0][3]
    MODULE_LOGGER.info(func_name + '()')
    return _fact_i.invoke(JLong, jarray.array([num], JLong))


def fact_lp(num):
Esempio n. 3
0
 def __init__(self, libname):
     self._lib = NativeLibrary.getInstance(libname)