+++ /dev/null
-/* Memory view object. In Python this is available as "memoryview". */\r
-\r
-#ifndef Py_MEMORYOBJECT_H\r
-#define Py_MEMORYOBJECT_H\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-PyAPI_DATA(PyTypeObject) PyMemoryView_Type;\r
-\r
-#define PyMemoryView_Check(op) (Py_TYPE(op) == &PyMemoryView_Type)\r
-\r
-/* Get a pointer to the underlying Py_buffer of a memoryview object. */\r
-#define PyMemoryView_GET_BUFFER(op) (&((PyMemoryViewObject *)(op))->view)\r
-/* Get a pointer to the PyObject from which originates a memoryview object. */\r
-#define PyMemoryView_GET_BASE(op) (((PyMemoryViewObject *)(op))->view.obj)\r
-\r
-\r
-PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base, \r
- int buffertype, \r
- char fort);\r
-\r
- /* Return a contiguous chunk of memory representing the buffer\r
- from an object in a memory view object. If a copy is made then the\r
- base object for the memory view will be a *new* bytes object. \r
- \r
- Otherwise, the base-object will be the object itself and no \r
- data-copying will be done. \r
-\r
- The buffertype argument can be PyBUF_READ, PyBUF_WRITE,\r
- PyBUF_SHADOW to determine whether the returned buffer\r
- should be READONLY, WRITABLE, or set to update the\r
- original buffer if a copy must be made. If buffertype is\r
- PyBUF_WRITE and the buffer is not contiguous an error will\r
- be raised. In this circumstance, the user can use\r
- PyBUF_SHADOW to ensure that a a writable temporary\r
- contiguous buffer is returned. The contents of this\r
- contiguous buffer will be copied back into the original\r
- object after the memoryview object is deleted as long as\r
- the original object is writable and allows setting an\r
- exclusive write lock. If this is not allowed by the\r
- original object, then a BufferError is raised.\r
- \r
- If the object is multi-dimensional and if fortran is 'F',\r
- the first dimension of the underlying array will vary the\r
- fastest in the buffer. If fortran is 'C', then the last\r
- dimension will vary the fastest (C-style contiguous). If\r
- fortran is 'A', then it does not matter and you will get\r
- whatever the object decides is more efficient. \r
-\r
- A new reference is returned that must be DECREF'd when finished.\r
- */\r
-\r
-PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base);\r
-\r
-PyAPI_FUNC(PyObject *) PyMemoryView_FromBuffer(Py_buffer *info);\r
- /* create new if bufptr is NULL \r
- will be a new bytesobject in base */\r
-\r
-\r
-/* The struct is declared here so that macros can work, but it shouldn't\r
- be considered public. Don't access those fields directly, use the macros\r
- and functions instead! */\r
-typedef struct {\r
- PyObject_HEAD\r
- PyObject *base;\r
- Py_buffer view;\r
-} PyMemoryViewObject;\r
-\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-#endif /* !Py_MEMORYOBJECT_H */\r