Example #1
0
static void
c_api_register_timed(const char *filename, void(*callback)(void), int interval_seconds)
{
    char *plugin_name = _c_plugin_name(filename);
    log_debug("Register timed for %s", plugin_name);

    TimedWrapper *wrapper = malloc(sizeof(TimedWrapper));
    wrapper->func = callback;
    api_register_timed(plugin_name, wrapper, interval_seconds, c_timed_callback, free);

    free(plugin_name);
}
Example #2
0
static PyObject *
python_api_register_timed(PyObject *self, PyObject *args)
{
    PyObject *p_callback = NULL;
    int interval_seconds = 0;

    if (!PyArg_ParseTuple(args, "Oi", &p_callback, &interval_seconds)) {
        Py_RETURN_NONE;
    }

    char *plugin_name = _python_plugin_name();
    log_debug("Register timed for %s", plugin_name);

    if (p_callback && PyCallable_Check(p_callback)) {
        allow_python_threads();
        api_register_timed(plugin_name, p_callback, interval_seconds, python_timed_callback, NULL);
        disable_python_threads();
    }

    free(plugin_name);

    Py_RETURN_NONE;
}