Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 58c5a2a

Browse files
committed
Started documentation on buffer objects & types. Very preliminary.
Greg Stein: Please help with this; it's your baby!
1 parent 4574f23 commit 58c5a2a

1 file changed

Lines changed: 66 additions & 1 deletion

File tree

Doc/api/api.tex

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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}}
30293083
Typedefs:
30303084
unaryfunc, binaryfunc, ternaryfunc, inquiry, coercion, intargfunc,
30313085
intintargfunc, intobjargproc, intintobjargproc, objobjargproc,
3032-
getreadbufferproc, getwritebufferproc, getsegcountproc,
3086+
getreadbufferproc, getsegcountproc, getcharbufferproc,
30333087
destructor, printfunc, getattrfunc, getattrofunc, setattrfunc,
30343088
setattrofunc, 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+
30363101
PyNumberMethods
30373102
30383103
PySequenceMethods

0 commit comments

Comments
 (0)