author | Tero Marttila <terom@fixme.fi> |
Mon, 17 Aug 2009 20:24:12 +0300 | |
changeset 22 | f6e8d5e37998 |
parent 20 | 0e4933d5862e |
child 50 | da394bb715af |
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 |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
8 |
void Py_XDECREF (PyObject *obj) |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
9 |
|
22
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
10 |
## object protocol |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
11 |
# __richcompare__ constants |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
12 |
enum : |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
13 |
Py_LT |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
14 |
Py_LE |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
15 |
Py_EQ |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
16 |
Py_NE |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
17 |
Py_GT |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
18 |
Py_GE |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
19 |
|
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
20 |
PyObject *Py_NotImplemented |
f6e8d5e37998
some __cmp__ and doctest love for socket.address
Tero Marttila <terom@fixme.fi>
parents:
20
diff
changeset
|
21 |
|
7
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
22 |
## string stuff |
14
c44754cc1ffe
some recv magic, still no PyString_Resize, though
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
23 |
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
|
24 |
|
16
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
25 |
PyObject* PyString_FromStringAndSize (char *v, ssize_t len) |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
26 |
|
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
27 |
# no error checking |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
28 |
ssize_t PyString_GET_SIZE (PyObject *str) |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
29 |
char* PyString_AS_STRING (PyObject *str) |
24ce1035b338
sockbuf stuff and fully implement recvmsg
Tero Marttila <terom@fixme.fi>
parents:
14
diff
changeset
|
30 |
|
14
c44754cc1ffe
some recv magic, still no PyString_Resize, though
Tero Marttila <terom@fixme.fi>
parents:
11
diff
changeset
|
31 |
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
|
32 |
|
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
33 |
## except setting |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
34 |
PyObject* PyErr_SetFromErrno (PyObject *type) |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
35 |
|
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
36 |
PyObject *PyExc_OSError |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
37 |
|
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
38 |
# raise OSError with errno |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
39 |
# XXX: doesn't do anything with func |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
40 |
cdef int raise_errno (char *func) except -1 |
74fde84264b1
broke Cython with this package magic
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
41 |