author | Tero Marttila <terom@fixme.fi> |
Sat, 26 Sep 2009 16:39:20 +0300 | |
changeset 50 | da394bb715af |
parent 22 | f6e8d5e37998 |
child 51 | c6b4abfc21da |
permissions | -rw-r--r-- |
14
c44754cc1ffe
some recv magic, still no PyString_Resize, though
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
1 |
from qmsk.net.libc cimport ssize_t, errno |
7
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
2 |
|
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
3 |
cdef extern from "Python.h" : |
16
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
4 |
ctypedef struct PyObject : |
7
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
5 |
pass |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
6 |
|
16
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
7 |
## refcounting |
50
da394bb715af
try and keep lib.event2.event objects alive (via self-ref) while pending
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
8 |
# XXX: does this make cython do some dumb refcounting stuff for the object arg? |
da394bb715af
try and keep lib.event2.event objects alive (via self-ref) while pending
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
9 |
void Py_INCREF (object o) |
da394bb715af
try and keep lib.event2.event objects alive (via self-ref) while pending
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
10 |
void Py_DECREF (object o) |
da394bb715af
try and keep lib.event2.event objects alive (via self-ref) while pending
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
11 |
|
16
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
12 |
void Py_XDECREF (PyObject *obj) |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
13 |
|
22
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
14 |
## object protocol |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
15 |
# __richcompare__ constants |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
16 |
enum : |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
17 |
Py_LT |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
18 |
Py_LE |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
19 |
Py_EQ |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
20 |
Py_NE |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
21 |
Py_GT |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
22 |
Py_GE |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
23 |
|
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
24 |
PyObject *Py_NotImplemented |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
25 |
|
7
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
26 |
## string stuff |
14
c44754cc1ffe
some recv magic, still no PyString_Resize, though
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
27 |
int PyObject_AsCharBuffer (object obj, char **buf, ssize_t *len) except -1 |
c44754cc1ffe
some recv magic, still no PyString_Resize, though
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
28 |
|
16
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
29 |
PyObject* PyString_FromStringAndSize (char *v, ssize_t len) |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
30 |
|
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
31 |
# no error checking |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
32 |
ssize_t PyString_GET_SIZE (PyObject *str) |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
33 |
char* PyString_AS_STRING (PyObject *str) |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
34 |
|
14
c44754cc1ffe
some recv magic, still no PyString_Resize, though
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
35 |
int _PyString_Resize (PyObject **string, ssize_t newsize) except -1 |
7
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
36 |
|
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
37 |
## except setting |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
38 |
PyObject* PyErr_SetFromErrno (PyObject *type) |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
39 |
|
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
40 |
PyObject *PyExc_OSError |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
41 |
|
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
42 |
# raise OSError with errno |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
43 |
# XXX: doesn't do anything with func |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
44 |
cdef int raise_errno (char *func) except -1 |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
45 |