@@ -1828,6 +1828,60 @@ \subsection{String Objects \label{stringObjects}}
18281828\end {cfuncdesc }
18291829
18301830
1831+ \subsection {Buffer Objects \label {bufferObjects } }
1832+
1833+ XXX need a real description of buffers and buffer '' segments.``
1834+
1835+ \begin {cvardesc }{PyTypeObject}{PyBuffer_Type}
1836+ The instance of \ctype {PyTypeObject} which represents the Python
1837+ buffer type.
1838+ \end {cvardesc }
1839+
1840+ \begin {cvardesc }{int}{Py_END_OF_BUFFER}
1841+ Constant returned by \cfunction {Py}
1842+ \end {cvardesc }
1843+
1844+ \begin {cfuncdesc }{int}{PyBuffer_Check}{PyObject *p}
1845+ Return true if the argument has type \cdata {PyBuffer_Type}.
1846+ \end {cfuncdesc }
1847+
1848+ \begin {cfuncdesc }{PyObject*}{PyBuffer_FromObject}{PyObject *base,
1849+ int offset, int size}
1850+ Return a new read-only buffer object.
1851+ Raises \exception {TypeError} if \var {base} doesn't support the
1852+ read-only buffer protocol or doesn't provide exactly one buffer
1853+ segment. Raises \exception {ValueError} if \var {offset} is less than
1854+ zero.
1855+ \end {cfuncdesc }
1856+
1857+ \begin {cfuncdesc }{PyObject*}{PyBuffer_FromReadWriteObject}{PyObject *base,
1858+ int offset,
1859+ int size}
1860+ Return a new writable buffer object. Parameters and exceptions are
1861+ similar to those for \cfunction {PyBuffer_FromObject()}.
1862+ \end {cfuncdesc }
1863+
1864+ \begin {cfuncdesc }{PyObject*}{PyBuffer_FromMemory}{void *ptr, int size}
1865+ Return a new read-only buffer object that reads from a memory buffer.
1866+ The caller is responsible for ensuring that the memory buffer, passed
1867+ in as \var {ptr}, is not deallocated while the returned buffer object
1868+ exists. Raises \exception {ValueError} if \var {size} is less than
1869+ zero.
1870+ \end {cfuncdesc }
1871+
1872+ \begin {cfuncdesc }{PyObject*}{PyBuffer_FromReadWriteMemory}{void *ptr, int size}
1873+ Return a new writable buffer object that reads from and writes to a
1874+ memory buffer. The caller is responsible for ensuring that the memory
1875+ buffer, passed in as \var {ptr}, is not deallocated while the returned
1876+ buffer object exists. Raises \exception {ValueError} if \var {size} is
1877+ less than zero.
1878+ \end {cfuncdesc }
1879+
1880+ \begin {cfuncdesc }{PyObject*}{PyBuffer_New}{int size}
1881+ Returns a new writable buffer object that maintains its own memory
1882+ buffer of \var {size} bytes. \var {size} must be zero or positive.
1883+ \end {cfuncdesc }
1884+
18311885
18321886\subsection {Tuple Objects \label {tupleObjects } }
18331887
@@ -3029,10 +3083,21 @@ \chapter{Defining New Object Types \label{newTypes}}
30293083Typedefs:
30303084unaryfunc, binaryfunc, ternaryfunc, inquiry, coercion, intargfunc,
30313085intintargfunc, intobjargproc, intintobjargproc, objobjargproc,
3032- getreadbufferproc, getwritebufferproc, getsegcountproc ,
3086+ getreadbufferproc, getsegcountproc, getcharbufferproc ,
30333087destructor, printfunc, getattrfunc, getattrofunc, setattrfunc,
30343088setattrofunc, cmpfunc, reprfunc, hashfunc
30353089
3090+ \begin {ctypedesc }{int (*getwritebufferproc) (PyObject *self, int segment,
3091+ void **ptrptr)}
3092+ Return a pointer to a writable memory buffer in \code {*\var {ptrptr}};
3093+ the memory buffer must correspond to buffer segment \var {segment}.
3094+ Must return \code {-1} and set an exception on error.
3095+ \exception {TypeError} should be raised if the object only supports
3096+ read-only buffers, and \exception {SystemError} should be raised when
3097+ \var {segment} specifies a segment that doesn't exist.
3098+ % Why doesn't it raise ValueError for this one?
3099+ \end {ctypedesc }
3100+
30363101PyNumberMethods
30373102
30383103PySequenceMethods
0 commit comments