diff options
author | Christopher Davis <loafier@gmail.com> | 2006-08-12 22:16:53 +0000 |
---|---|---|
committer | Christopher Davis <loafier@gmail.com> | 2006-08-12 22:16:53 +0000 |
commit | 3a028090359e5d5d24ccbfc11d9b6ff5681aab4f (patch) | |
tree | 0cfb8ec1eb8a49366fc663bef00bf4dfb1f7c307 /objects/query-object.c | |
parent | f13ea25509e932d426ebd69d90368fe9b1d4c1ab (diff) | |
download | irssi-python-3a028090359e5d5d24ccbfc11d9b6ff5681aab4f.tar.gz irssi-python-3a028090359e5d5d24ccbfc11d9b6ff5681aab4f.tar.xz irssi-python-3a028090359e5d5d24ccbfc11d9b6ff5681aab4f.zip |
directory structure change
git-svn-id: http://svn.irssi.org/repos/irssi-python@4312 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'objects/query-object.c')
-rw-r--r-- | objects/query-object.c | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/objects/query-object.c b/objects/query-object.c deleted file mode 100644 index 47badd5..0000000 --- a/objects/query-object.c +++ /dev/null @@ -1,172 +0,0 @@ -#include <Python.h> -#include "pyirssi.h" -#include "pymodule.h" -#include "base-objects.h" -#include "window-item-object.h" -#include "query-object.h" -#include "server-object.h" -#include "pycore.h" - -/* monitor "query destroyed" signal */ -static void query_cleanup(QUERY_REC *query) -{ - PyQuery *pyquery = signal_get_user_data(); - - if (query == pyquery->data) - { - pyquery->data = NULL; - pyquery->cleanup_installed = 0; - signal_remove_data("query destroyed", query_cleanup, pyquery); - } -} - -static void PyQuery_dealloc(PyQuery *self) -{ - if (self->cleanup_installed) - signal_remove_data("query destroyed", query_cleanup, self); - - self->ob_type->tp_free((PyObject*)self); -} - -/* Getters */ -PyDoc_STRVAR(PyQuery_address_doc, - "Host address of the queries nick" -); -static PyObject *PyQuery_address_get(PyQuery *self, void *closure) -{ - RET_NULL_IF_INVALID(self->data); - RET_AS_STRING_OR_NONE(self->data->address); -} - -PyDoc_STRVAR(PyQuery_server_tag_doc, - "Server tag used for this nick (doesn't get erased if server gets disconnected)" -); -static PyObject *PyQuery_server_tag_get(PyQuery *self, void *closure) -{ - RET_NULL_IF_INVALID(self->data); - RET_AS_STRING_OR_NONE(self->data->server_tag); -} - -PyDoc_STRVAR(PyQuery_unwanted_doc, - "1 if the other side closed or some error occured (DCC chats)" -); -static PyObject *PyQuery_unwanted_get(PyQuery *self, void *closure) -{ - RET_NULL_IF_INVALID(self->data); - return PyBool_FromLong(self->data->unwanted); -} - -/* specialized getters/setters */ -static PyGetSetDef PyQuery_getseters[] = { - {"address", (getter)PyQuery_address_get, NULL, - PyQuery_address_doc, NULL}, - {"server_tag", (getter)PyQuery_server_tag_get, NULL, - PyQuery_server_tag_doc, NULL}, - {"unwanted", (getter)PyQuery_unwanted_get, NULL, - PyQuery_unwanted_doc, NULL}, - {NULL} -}; - -PyDoc_STRVAR(change_server_doc, - "change_server(server) -> None\n" - "\n" - "Change the active server for the query.\n" -); -static PyObject *PyQuery_change_server(PyQuery *self, PyObject *args, PyObject *kwds) -{ - static char *kwlist[] = {"server", NULL}; - PyObject *server; - - RET_NULL_IF_INVALID(self->data); - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "O", kwlist, &server)) - return NULL; - - if (!pyserver_check(server)) - return PyErr_Format(PyExc_TypeError, "argument must be server object"); - - query_change_server(self->data, ((PyServer*)server)->data); - - Py_RETURN_NONE; -} - -/* Methods for object */ -static PyMethodDef PyQuery_methods[] = { - {"change_server", (PyCFunction)PyQuery_change_server, METH_VARARGS | METH_KEYWORDS, - change_server_doc}, - - {NULL} /* Sentinel */ -}; - -PyTypeObject PyQueryType = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "Query", /*tp_name*/ - sizeof(PyQuery), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor)PyQuery_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*/ - "PyQuery objects", /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - PyQuery_methods, /* tp_methods */ - 0, /* tp_members */ - PyQuery_getseters, /* tp_getset */ - &PyWindowItemType, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - 0, /* tp_new */ -}; - - -/* query factory function */ -PyObject *pyquery_new(void *query) -{ - static const char *BASE_NAME = "QUERY"; - PyObject *pyquery; - - pyquery = pywindow_item_sub_new(query, BASE_NAME, &PyQueryType); - if (pyquery) - { - PyQuery *pyq = (PyQuery *)pyquery; - signal_add_last_data("query destroyed", query_cleanup, pyq); - pyq->cleanup_installed = 1; - } - - return pyquery; -} - -int query_object_init(void) -{ - g_return_val_if_fail(py_module != NULL, 0); - - if (PyType_Ready(&PyQueryType) < 0) - return 0; - - Py_INCREF(&PyQueryType); - PyModule_AddObject(py_module, "Query", (PyObject *)&PyQueryType); - - return 1; -} |