#include "cReactor.h"
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
static PyObject *
cReactorModule_install(PyObject *self, PyObject *args)
{
PyObject *reactor;
PyObject *module;
PyObject *result;
UNUSED(self);
if (!PyArg_ParseTuple(args, ":install"))
{
return NULL;
}
module = cReactorUtil_FromImport("twisted.internet", "main");
if (!module)
{
return NULL;
}
reactor = cReactor_New();
if (!reactor)
{
Py_DECREF(module);
return NULL;
}
result = PyObject_CallMethod(module, "installReactor", "(O)", reactor);
Py_DECREF(module);
return result;
}
static PyObject *
cReactorModule_new(PyObject *self, PyObject *args)
{
UNUSED(self);
if (!PyArg_ParseTuple(args, ":new"))
{
return NULL;
}
return cReactor_New();
}
static PyMethodDef cReactor_methods[] =
{
{ "install", cReactorModule_install, METH_VARARGS, "Install the cReactor." },
{ "new", cReactorModule_new, METH_VARARGS, "" },
{ NULL, NULL, METH_VARARGS, NULL },
};
DL_EXPORT(void)
initcReactor(void)
{
if (getenv("CREACTOR_DEBUG") != NULL)
{
kill(0, SIGTRAP);
}
cDelayedCall_init();
cReactorTCP_init();
Py_InitModule3("cReactor", cReactor_methods, "The Twisted C Reactor.");
}