aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Includes/cpython/oldbuffer.pxd
blob: c48a9de073bd5c036d53834e534936fdf4cef0b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Legacy Python 2 buffer interface. 
# 
# These functions are no longer available in Python 3, use the new 
# buffer interface instead. 
 
cdef extern from "Python.h": 
    cdef enum _: 
        Py_END_OF_BUFFER 
    #    This constant may be passed as the size parameter to 
    #    PyBuffer_FromObject() or PyBuffer_FromReadWriteObject(). It 
    #    indicates that the new PyBufferObject should refer to base object 
    #    from the specified offset to the end of its exported 
    #    buffer. Using this enables the caller to avoid querying the base 
    #    object for its length. 
 
    bint PyBuffer_Check(object p) 
    #    Return true if the argument has type PyBuffer_Type. 
 
    object PyBuffer_FromObject(object base, Py_ssize_t offset, Py_ssize_t size) 
    #    Return value: New reference. 
    # 
    #    Return a new read-only buffer object. This raises TypeError if 
    #    base doesn't support the read-only buffer protocol or doesn't 
    #    provide exactly one buffer segment, or it raises ValueError if 
    #    offset is less than zero. The buffer will hold a reference to the 
    #    base object, and the buffer's contents will refer to the base 
    #    object's buffer interface, starting as position offset and 
    #    extending for size bytes. If size is Py_END_OF_BUFFER, then the 
    #    new buffer's contents extend to the length of the base object's 
    #    exported buffer data. 
 
    object PyBuffer_FromReadWriteObject(object base, Py_ssize_t offset, Py_ssize_t size) 
    #    Return value: New reference. 
    # 
    #    Return a new writable buffer object. Parameters and exceptions 
    #    are similar to those for PyBuffer_FromObject(). If the base 
    #    object does not export the writeable buffer protocol, then 
    #    TypeError is raised. 
 
    object PyBuffer_FromMemory(void *ptr, Py_ssize_t size) 
    #    Return value: New reference. 
    # 
    #    Return a new read-only buffer object that reads from a specified 
    #    location in memory, with a specified size. The caller is 
    #    responsible for ensuring that the memory buffer, passed in as 
    #    ptr, is not deallocated while the returned buffer object 
    #    exists. Raises ValueError if size is less than zero. Note that 
    #    Py_END_OF_BUFFER may not be passed for the size parameter; 
    #    ValueError will be raised in that case. 
 
    object PyBuffer_FromReadWriteMemory(void *ptr, Py_ssize_t size) 
    #    Return value: New reference. 
    # 
    #    Similar to PyBuffer_FromMemory(), but the returned buffer is 
    #    writable. 
 
    object PyBuffer_New(Py_ssize_t size) 
    #    Return value: New reference. 
    # 
    #    Return a new writable buffer object that maintains its own memory 
    #    buffer of size bytes. ValueError is returned if size is not zero 
    #    or positive. Note that the memory buffer (as returned by 
    #    PyObject_AsWriteBuffer()) is not specifically aligned.