annotate Doc/c-api/objbuffer.rst @ 67467:abe201dfd3dc 3.1

Merged revisions 87861,87863 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r87861 | antoine.pitrou | 2011-01-08 11:23:29 +0100 (sam., 08 janv. 2011) | 3 lines Fix test_ssl after r87849 ........ r87863 | antoine.pitrou | 2011-01-08 11:28:11 +0100 (sam., 08 janv. 2011) | 3 lines Add EHOSTUNREACH ('No route to host') to the errnos trapped by transient_internet(). ........
author Antoine Pitrou <solipsis@pitrou.net>
date Sat, 08 Jan 2011 10:31:09 +0000
parents dc4555646e80
children 521eac31a893
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
44812
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
1 .. highlightlang:: c
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
2
64997
dc4555646e80 Merged revisions 85082 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 64990
diff changeset
3 Old Buffer Protocol
dc4555646e80 Merged revisions 85082 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 64990
diff changeset
4 -------------------
64990
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
5
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
6 .. deprecated:: 3.0
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
7
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
8 These functions were part of the "old buffer protocol" API in Python 2.
64997
dc4555646e80 Merged revisions 85082 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 64990
diff changeset
9 In Python 3, this protocol doesn't exist anymore but the functions are still
dc4555646e80 Merged revisions 85082 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 64990
diff changeset
10 exposed to ease porting 2.x code. They act as a compatibility wrapper
dc4555646e80 Merged revisions 85082 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 64990
diff changeset
11 around the :ref:`new buffer protocol <bufferobjects>`, but they don't give
dc4555646e80 Merged revisions 85082 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 64990
diff changeset
12 you control over the lifetime of the resources acquired when a buffer is
dc4555646e80 Merged revisions 85082 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 64990
diff changeset
13 exported.
64990
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
14
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
15 Therefore, it is recommended that you call :cfunc:`PyObject_GetBuffer`
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
16 (or the ``y*`` or ``w*`` :ref:`format codes <arg-parsing>` with the
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
17 :cfunc:`PyArg_ParseTuple` family of functions) to get a buffer view over
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
18 an object, and :cfunc:`PyBuffer_Release` when the buffer view can be released.
6c8adc200ee0 Merged revisions 85075 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 53500
diff changeset
19
44812
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
20
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
21 .. cfunction:: int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
22
45435
42b3b117391d Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900-60931,60933-60958 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44812
diff changeset
23 Returns a pointer to a read-only memory location usable as character-based
44812
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
24 input. The *obj* argument must support the single-segment character buffer
53498
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
25 interface. On success, returns ``0``, sets *buffer* to the memory location
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
26 and *buffer_len* to the buffer length. Returns ``-1`` and sets a
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
27 :exc:`TypeError` on error.
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
28
44812
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
29
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
30 .. cfunction:: int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
31
53498
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
32 Returns a pointer to a read-only memory location containing arbitrary data.
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
33 The *obj* argument must support the single-segment readable buffer
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
34 interface. On success, returns ``0``, sets *buffer* to the memory location
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
35 and *buffer_len* to the buffer length. Returns ``-1`` and sets a
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
36 :exc:`TypeError` on error.
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
37
44812
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
38
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
39 .. cfunction:: int PyObject_CheckReadBuffer(PyObject *o)
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
40
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
41 Returns ``1`` if *o* supports the single-segment readable buffer interface.
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
42 Otherwise returns ``0``.
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
43
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
44
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
45 .. cfunction:: int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
46
1e8b9e7c34ce Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff changeset
47 Returns a pointer to a writable memory location. The *obj* argument must
53498
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
48 support the single-segment, character buffer interface. On success,
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
49 returns ``0``, sets *buffer* to the memory location and *buffer_len* to the
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
50 buffer length. Returns ``-1`` and sets a :exc:`TypeError` on error.
1fca1c932696 Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents: 45435
diff changeset
51