Mercurial > repos > yating-l > jbrowsearchivecreator
comparison test/include/python2.7/memoryobject.h @ 3:7d1a9a91b989 draft
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit d583ac16a6c6942730ea536eb59cc37941816030-dirty
| author | yating-l |
|---|---|
| date | Thu, 18 May 2017 18:37:28 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 2:3e2160197902 | 3:7d1a9a91b989 |
|---|---|
| 1 /* Memory view object. In Python this is available as "memoryview". */ | |
| 2 | |
| 3 #ifndef Py_MEMORYOBJECT_H | |
| 4 #define Py_MEMORYOBJECT_H | |
| 5 #ifdef __cplusplus | |
| 6 extern "C" { | |
| 7 #endif | |
| 8 | |
| 9 PyAPI_DATA(PyTypeObject) PyMemoryView_Type; | |
| 10 | |
| 11 #define PyMemoryView_Check(op) (Py_TYPE(op) == &PyMemoryView_Type) | |
| 12 | |
| 13 /* Get a pointer to the underlying Py_buffer of a memoryview object. */ | |
| 14 #define PyMemoryView_GET_BUFFER(op) (&((PyMemoryViewObject *)(op))->view) | |
| 15 /* Get a pointer to the PyObject from which originates a memoryview object. */ | |
| 16 #define PyMemoryView_GET_BASE(op) (((PyMemoryViewObject *)(op))->view.obj) | |
| 17 | |
| 18 | |
| 19 PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base, | |
| 20 int buffertype, | |
| 21 char fort); | |
| 22 | |
| 23 /* Return a contiguous chunk of memory representing the buffer | |
| 24 from an object in a memory view object. If a copy is made then the | |
| 25 base object for the memory view will be a *new* bytes object. | |
| 26 | |
| 27 Otherwise, the base-object will be the object itself and no | |
| 28 data-copying will be done. | |
| 29 | |
| 30 The buffertype argument can be PyBUF_READ, PyBUF_WRITE, | |
| 31 PyBUF_SHADOW to determine whether the returned buffer | |
| 32 should be READONLY, WRITABLE, or set to update the | |
| 33 original buffer if a copy must be made. If buffertype is | |
| 34 PyBUF_WRITE and the buffer is not contiguous an error will | |
| 35 be raised. In this circumstance, the user can use | |
| 36 PyBUF_SHADOW to ensure that a writable temporary | |
| 37 contiguous buffer is returned. The contents of this | |
| 38 contiguous buffer will be copied back into the original | |
| 39 object after the memoryview object is deleted as long as | |
| 40 the original object is writable and allows setting an | |
| 41 exclusive write lock. If this is not allowed by the | |
| 42 original object, then a BufferError is raised. | |
| 43 | |
| 44 If the object is multi-dimensional and if fortran is 'F', | |
| 45 the first dimension of the underlying array will vary the | |
| 46 fastest in the buffer. If fortran is 'C', then the last | |
| 47 dimension will vary the fastest (C-style contiguous). If | |
| 48 fortran is 'A', then it does not matter and you will get | |
| 49 whatever the object decides is more efficient. | |
| 50 | |
| 51 A new reference is returned that must be DECREF'd when finished. | |
| 52 */ | |
| 53 | |
| 54 PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base); | |
| 55 | |
| 56 PyAPI_FUNC(PyObject *) PyMemoryView_FromBuffer(Py_buffer *info); | |
| 57 /* create new if bufptr is NULL | |
| 58 will be a new bytesobject in base */ | |
| 59 | |
| 60 | |
| 61 /* The struct is declared here so that macros can work, but it shouldn't | |
| 62 be considered public. Don't access those fields directly, use the macros | |
| 63 and functions instead! */ | |
| 64 typedef struct { | |
| 65 PyObject_HEAD | |
| 66 PyObject *base; | |
| 67 Py_buffer view; | |
| 68 } PyMemoryViewObject; | |
| 69 | |
| 70 | |
| 71 #ifdef __cplusplus | |
| 72 } | |
| 73 #endif | |
| 74 #endif /* !Py_MEMORYOBJECT_H */ |
