00001 #ifndef __PYX_HAVE_API__PyCafe
00002 #define __PYX_HAVE_API__PyCafe
00003 #include "Python.h"
00004
00005 static void (*__pyx_f_6PyCafe_py_cb_wrapper)(PVDataHolder, unsigned int, std::string) = 0;
00006 #define py_cb_wrapper __pyx_f_6PyCafe_py_cb_wrapper
00007 static void (*__pyx_f_6PyCafe_py_cb_ctrl_wrapper)(PVCtrlHolder, unsigned int, std::string) = 0;
00008 #define py_cb_ctrl_wrapper __pyx_f_6PyCafe_py_cb_ctrl_wrapper
00009 static void (*__pyx_f_6PyCafe_py_cb_handle_wrapper)(unsigned int) = 0;
00010 #define py_cb_handle_wrapper __pyx_f_6PyCafe_py_cb_handle_wrapper
00011 static void (*__pyx_f_6PyCafe_py_cb_handle_monid_wrapper)(unsigned int, unsigned long) = 0;
00012 #define py_cb_handle_monid_wrapper __pyx_f_6PyCafe_py_cb_handle_monid_wrapper
00013 #if !defined(__Pyx_PyIdentifier_FromString)
00014 #if PY_MAJOR_VERSION < 3
00015 #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
00016 #else
00017 #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
00018 #endif
00019 #endif
00020
00021 #ifndef __PYX_HAVE_RT_ImportModule
00022 #define __PYX_HAVE_RT_ImportModule
00023 static PyObject *__Pyx_ImportModule(const char *name) {
00024 PyObject *py_name = 0;
00025 PyObject *py_module = 0;
00026 py_name = __Pyx_PyIdentifier_FromString(name);
00027 if (!py_name)
00028 goto bad;
00029 py_module = PyImport_Import(py_name);
00030 Py_DECREF(py_name);
00031 return py_module;
00032 bad:
00033 Py_XDECREF(py_name);
00034 return 0;
00035 }
00036 #endif
00037
00038 #ifndef __PYX_HAVE_RT_ImportFunction
00039 #define __PYX_HAVE_RT_ImportFunction
00040 static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
00041 PyObject *d = 0;
00042 PyObject *cobj = 0;
00043 union {
00044 void (*fp)(void);
00045 void *p;
00046 } tmp;
00047 d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
00048 if (!d)
00049 goto bad;
00050 cobj = PyDict_GetItemString(d, funcname);
00051 if (!cobj) {
00052 PyErr_Format(PyExc_ImportError,
00053 "%.200s does not export expected C function %.200s",
00054 PyModule_GetName(module), funcname);
00055 goto bad;
00056 }
00057 #if PY_VERSION_HEX >= 0x02070000
00058 if (!PyCapsule_IsValid(cobj, sig)) {
00059 PyErr_Format(PyExc_TypeError,
00060 "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
00061 PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
00062 goto bad;
00063 }
00064 tmp.p = PyCapsule_GetPointer(cobj, sig);
00065 #else
00066 {const char *desc, *s1, *s2;
00067 desc = (const char *)PyCObject_GetDesc(cobj);
00068 if (!desc)
00069 goto bad;
00070 s1 = desc; s2 = sig;
00071 while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
00072 if (*s1 != *s2) {
00073 PyErr_Format(PyExc_TypeError,
00074 "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
00075 PyModule_GetName(module), funcname, sig, desc);
00076 goto bad;
00077 }
00078 tmp.p = PyCObject_AsVoidPtr(cobj);}
00079 #endif
00080 *f = tmp.fp;
00081 if (!(*f))
00082 goto bad;
00083 Py_DECREF(d);
00084 return 0;
00085 bad:
00086 Py_XDECREF(d);
00087 return -1;
00088 }
00089 #endif
00090
00091
00092 static int import_PyCafe(void) {
00093 PyObject *module = 0;
00094 module = __Pyx_ImportModule("PyCafe");
00095 if (!module) goto bad;
00096 if (__Pyx_ImportFunction(module, "py_cb_wrapper", (void (**)(void))&__pyx_f_6PyCafe_py_cb_wrapper, "void (PVDataHolder, unsigned int, std::string)") < 0) goto bad;
00097 if (__Pyx_ImportFunction(module, "py_cb_ctrl_wrapper", (void (**)(void))&__pyx_f_6PyCafe_py_cb_ctrl_wrapper, "void (PVCtrlHolder, unsigned int, std::string)") < 0) goto bad;
00098 if (__Pyx_ImportFunction(module, "py_cb_handle_wrapper", (void (**)(void))&__pyx_f_6PyCafe_py_cb_handle_wrapper, "void (unsigned int)") < 0) goto bad;
00099 if (__Pyx_ImportFunction(module, "py_cb_handle_monid_wrapper", (void (**)(void))&__pyx_f_6PyCafe_py_cb_handle_monid_wrapper, "void (unsigned int, unsigned long)") < 0) goto bad;
00100 Py_DECREF(module); module = 0;
00101 return 0;
00102 bad:
00103 Py_XDECREF(module);
00104 return -1;
00105 }
00106
00107 #endif