Esempio n. 1
0
static int Task_init(PyTask * self, PyObject * args, PyObject * kwds)
{
    PyObject * arg;
    if (!PyArg_ParseTuple(args, "O", &arg)) {
        return -1;
    }
    if (PyTask_Check(arg)) {
        PyTask * wrap_task = (PyTask *)arg;
#ifndef NDEBUG
        if (wrap_task->m_task == NULL) {
            PyErr_SetString(PyExc_AssertionError, "NULL task Task.__init__");
            return -1;
        }
#endif // NDEBUG
        self->m_task = wrap_task->m_task;
        return 0;
    }
    if (PyLocatedEntity_Check(arg)) {
        PyEntity * owner = (PyEntity *)arg;
#ifndef NDEBUG
        if (owner->m_entity.l == NULL) {
            PyErr_SetString(PyExc_AssertionError, "NULL owner Task.__init__");
            return -1;
        }
#endif // NDEBUG
        self->m_task = new Task(*owner->m_entity.l);
        return 0;
    }
    PyErr_SetString(PyExc_TypeError, "Task requires a Task, or Entity");
    return -1;
}
Esempio n. 2
0
static PyObject * null_wrapper(PyObject * self, PyTask * o)
{
    if (PyTask_Check(o)) {
#ifdef CYPHESIS_DEBUG
        o->m_task = NULL;
#endif // NDEBUG
    } else if (PyCharacter_Check(o)) {
#ifdef CYPHESIS_DEBUG
        ((PyEntity*)o)->m_entity.c = 0;
#endif // NDEBUG
    } else {
        PyErr_SetString(PyExc_TypeError, "Unknown Object type");
        return NULL;
    }
    Py_INCREF(Py_None);
    return Py_None;
}