diff options
Diffstat (limited to 'objects/rawlog-object.c')
| -rw-r--r-- | objects/rawlog-object.c | 323 |
1 files changed, 0 insertions, 323 deletions
diff --git a/objects/rawlog-object.c b/objects/rawlog-object.c deleted file mode 100644 index 340d60a..0000000 --- a/objects/rawlog-object.c +++ /dev/null @@ -1,323 +0,0 @@ -#include <Python.h> -#include "pyirssi_irc.h" -#include "pymodule.h" -#include "rawlog-object.h" -#include "pycore.h" - -/* monitor "????" signal */ -static void rawlog_cleanup(RAWLOG_REC *ban) -{ - /* XXX */ -} - -static void PyRawlog_dealloc(PyRawlog *self) -{ - self->ob_type->tp_free((PyObject*)self); -} - -static PyObject *PyRawlog_new(PyTypeObject *type, PyObject *args, PyObject *kwds) -{ - PyRawlog *self; - - self = (PyRawlog *)type->tp_alloc(type, 0); - if (!self) - return NULL; - - return (PyObject *)self; -} - -/* XXX: Need function to create the rawlog */ - -/* Getters */ -PyDoc_STRVAR(PyRawlog_logging_doc, - "The raw log is being written to file currently." -); -static PyObject *PyRawlog_logging_get(PyRawlog *self, void *closure) -{ - RET_NULL_IF_INVALID(self->data); - return PyBool_FromLong(self->data->logging); -} - -PyDoc_STRVAR(PyRawlog_nlines_doc, - "Number of lines in rawlog." -); -static PyObject *PyRawlog_nlines_get(PyRawlog *self, void *closure) -{ - RET_NULL_IF_INVALID(self->data); - return PyInt_FromLong(self->data->nlines); -} - -/* specialized getters/setters */ -static PyGetSetDef PyRawlog_getseters[] = { - {"logging", (getter)PyRawlog_logging_get, NULL, - PyRawlog_logging_doc, NULL}, - {"nlines", (getter)PyRawlog_nlines_get, NULL, - PyRawlog_nlines_doc, NULL}, - {NULL} -}; - -/* Methods */ -PyDoc_STRVAR(PyRawlog_get_lines_doc, - "get_lines() -> list of str\n" - "\n" - "Return a list of lines for rawlog.\n" -); -static PyObject *PyRawlog_get_lines(PyRawlog *self, PyObject *args) -{ - PyObject *lines = NULL; - GSList *node; - - RET_NULL_IF_INVALID(self->data); - - lines = PyList_New(0); - if (!lines) - return NULL; - - for (node = self->data->lines; node; node = node->next) - { - int ret; - PyObject *line = PyString_FromString(node->data); - - if (!line) - { - Py_XDECREF(lines); - return NULL; - } - - ret = PyList_Append(lines, line); - Py_DECREF(line); - if (ret != 0) - { - Py_XDECREF(lines); - return NULL; - } - } - - return lines; -} - -PyDoc_STRVAR(PyRawlog_destroy_doc, - "destroy() -> None\n" - "\n" - "Destroy rawlog\n" -); -static PyObject *PyRawlog_destroy(PyRawlog *self, PyObject *args) -{ - RET_NULL_IF_INVALID(self->data); - - rawlog_destroy(self->data); - - /*XXX: what about signal handler ? */ - self->data = NULL; - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(PyRawlog_input_doc, - "input(str) -> None\n" - "\n" - "Send str to rawlog as input text.\n" -); -static PyObject *PyRawlog_input(PyRawlog *self, PyObject *args, PyObject *kwds) -{ - static char *kwlist[] = {"str", NULL}; - char *str = ""; - - RET_NULL_IF_INVALID(self->data); - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, - &str)) - return NULL; - - rawlog_input(self->data, str); - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(PyRawlog_output_doc, - "output(str) -> None\n" - "\n" - "Send str to rawlog as output text.\n" -); -static PyObject *PyRawlog_output(PyRawlog *self, PyObject *args, PyObject *kwds) -{ - static char *kwlist[] = {"str", NULL}; - char *str = ""; - - RET_NULL_IF_INVALID(self->data); - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, - &str)) - return NULL; - - rawlog_output(self->data, str); - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(PyRawlog_redirect_doc, - "redirect(str) -> None\n" - "\n" - "Send str to rawlog as redirection text." -); -static PyObject *PyRawlog_redirect(PyRawlog *self, PyObject *args, PyObject *kwds) -{ - static char *kwlist[] = {"str", NULL}; - char *str = ""; - - RET_NULL_IF_INVALID(self->data); - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, - &str)) - return NULL; - - rawlog_redirect(self->data, str); - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(PyRawlog_open_doc, - "open(fname) -> None\n" - "\n" - "Start logging new messages in rawlog to specified file.\n" -); -static PyObject *PyRawlog_open(PyRawlog *self, PyObject *args, PyObject *kwds) -{ - static char *kwlist[] = {"fname", NULL}; - char *fname = ""; - - RET_NULL_IF_INVALID(self->data); - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, - &fname)) - return NULL; - - rawlog_open(self->data, fname); - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(PyRawlog_close_doc, - "close() -> None\n" - "\n" - "Stop logging to file\n" -); -static PyObject *PyRawlog_close(PyRawlog *self, PyObject *args) -{ - RET_NULL_IF_INVALID(self->data); - - rawlog_close(self->data); - - Py_RETURN_NONE; -} - -PyDoc_STRVAR(PyRawlog_save_doc, - "save(fname) -> None\n" - "\n" - "Save the current rawlog history to specified file.\n" -); -static PyObject *PyRawlog_save(PyRawlog *self, PyObject *args, PyObject *kwds) -{ - static char *kwlist[] = {"fname", NULL}; - char *fname = ""; - - RET_NULL_IF_INVALID(self->data); - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, - &fname)) - return NULL; - - rawlog_save(self->data, fname); - - Py_RETURN_NONE; -} -/* Methods for object */ -static PyMethodDef PyRawlog_methods[] = { - {"get_lines", (PyCFunction)PyRawlog_get_lines, METH_NOARGS, - PyRawlog_get_lines_doc}, - {"destroy", (PyCFunction)PyRawlog_destroy, METH_NOARGS, - PyRawlog_destroy_doc}, - {"input", (PyCFunction)PyRawlog_input, METH_VARARGS | METH_KEYWORDS, - PyRawlog_input_doc}, - {"output", (PyCFunction)PyRawlog_output, METH_VARARGS | METH_KEYWORDS, - PyRawlog_output_doc}, - {"redirect", (PyCFunction)PyRawlog_redirect, METH_VARARGS | METH_KEYWORDS, - PyRawlog_redirect_doc}, - {"open", (PyCFunction)PyRawlog_open, METH_VARARGS | METH_KEYWORDS, - PyRawlog_open_doc}, - {"close", (PyCFunction)PyRawlog_close, METH_NOARGS, - PyRawlog_close_doc}, - {"save", (PyCFunction)PyRawlog_save, METH_VARARGS | METH_KEYWORDS, - PyRawlog_save_doc}, - {NULL} /* Sentinel */ -}; - -PyTypeObject PyRawlogType = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "Rawlog", /*tp_name*/ - sizeof(PyRawlog), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor)PyRawlog_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash */ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ - "PyRawlog objects", /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - PyRawlog_methods, /* tp_methods */ - 0, /* tp_members */ - PyRawlog_getseters, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - PyRawlog_new, /* tp_new */ -}; - - -/* window item wrapper factory function */ -PyObject *pyrawlog_new(void *rlog) -{ - PyRawlog *pyrlog; - - pyrlog = py_inst(PyRawlog, PyRawlogType); - if (!pyrlog) - return NULL; - - pyrlog->data = rlog; - - return (PyObject *)pyrlog; -} - -int rawlog_object_init(void) -{ - g_return_val_if_fail(py_module != NULL, 0); - - if (PyType_Ready(&PyRawlogType) < 0) - return 0; - - Py_INCREF(&PyRawlogType); - PyModule_AddObject(py_module, "Rawlog", (PyObject *)&PyRawlogType); - - return 1; -} |
