Browse Source

release() on module_free()

master
Volker Birk 9 years ago
parent
commit
1e2fa5e10f
  1. 10
      src/pEpmodule.cc
  2. 39
      src/pEpmodule.hh

10
src/pEpmodule.cc

@ -1,5 +1,4 @@
#include "pEpmodule.hh"
#include <pEp/pEpEngine.h>
#include <string>
namespace pEp {
@ -13,14 +12,21 @@ namespace pEp {
return PyUnicode_FromString(version.c_str());
}
}
void module_free(void *)
{
release(session);
}
}
using namespace pEp;
PyMODINIT_FUNC PyInit_pEp(void)
{
PEP_SESSION session;
PEP_STATUS status = init(&session);
if (status != PEP_STATUS_OK)
return NULL;
return PyModule_Create(&pEpmodule);
}

39
src/pEpmodule.hh

@ -1,4 +1,5 @@
#include <Python.h>
#include <pEp/pEpEngine.h>
namespace pEp {
namespace PythonAdapter {
@ -6,20 +7,32 @@ namespace pEp {
PyObject *about(PyObject *self, PyObject *args);
}
}
static PyMethodDef pEpMethods[] = {
{"about", pEp::PythonAdapter::about, METH_VARARGS, "about p≡p"},
{NULL, NULL, 0, NULL}
};
static struct PyModuleDef pEpmodule = {
PyModuleDef_HEAD_INIT,
"pEp",
NULL,
-1,
pEpMethods
};
void module_free(void *);
struct module_state {
PEP_SESSION session;
};
struct PyMethodDef pEpMethods[] = {
{"about", pEp::PythonAdapter::about, METH_VARARGS, "about p≡p"},
{NULL, NULL, 0, NULL}
};
struct PyModuleDef pEpmodule = {
PyModuleDef_HEAD_INIT,
"pEp",
"p≡p Python adapter",
-1,
pEpMethods,
NULL,
NULL,
NULL,
pEp::module_free
};
PEP_SESSION session;
}
PyMODINIT_FUNC PyInit_pEp(void);

Loading…
Cancel
Save