qmsk/net/py.pxd
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--
try and keep lib.event2.event objects alive (via self-ref) while pending
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