90 def __init__(self, opts, appType="Gaudi::Application
"):
91 global _GaudiKernelLib
92 if _GaudiKernelLib
is None:
96 if sys.platform ==
"darwin":
99 _libpaths = os.environ.get(
"GAUDI_PLUGIN_PATH")
101 print(
"WARNING: GAUDI_PLUGIN_PATH is empty!")
102 for _path
in _libpaths.split(
":"):
103 _lib = os.path.join(_path,
"libGaudiKernel.dylib")
104 if os.path.isfile(_lib):
105 gkl = _GaudiKernelLib = ctypes.CDLL(
107 mode=ctypes.RTLD_GLOBAL,
110 gkl = _GaudiKernelLib = ctypes.CDLL(
112 mode=ctypes.RTLD_GLOBAL,
114 gkl._py_Gaudi__Application__create.restype = ctypes.c_void_p
115 gkl._py_Gaudi__Application__run.argtypes = [ctypes.c_void_p]
116 gkl._py_Gaudi__Application__run.restype = ctypes.c_int
117 gkl._py_Gaudi__Application__delete.argtypes = [ctypes.c_void_p]
119 c_opts = (c_opt_t * len(opts))()
120 for idx, item
in enumerate(opts.items()):
121 c_opts[idx].key = item[0].encode(
"ascii")
122 c_opts[idx].value = item[1].encode(
"ascii")
124 self.
_impl = _GaudiKernelLib._py_Gaudi__Application__create(
125 appType.encode(
"ascii"), c_opts, ctypes.c_ulong(len(c_opts))