File: asbuffer.pxi

package info (click to toggle)
paraview 3.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 173,864 kB
  • ctags: 192,754
  • sloc: cpp: 1,497,065; ansic: 607,818; tcl: 47,394; xml: 47,108; python: 29,870; perl: 3,117; java: 2,428; yacc: 1,853; sh: 833; asm: 471; lex: 393; pascal: 228; makefile: 189; fortran: 31
file content (33 lines) | stat: -rw-r--r-- 1,108 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#---------------------------------------------------------------------

cdef extern from "Python.h":
    object PyLong_FromVoidPtr(void*)
    void*  PyLong_AsVoidPtr(object)

cdef extern from "Python.h":
    ctypedef void const_void "const void"
    int PyObject_AsReadBuffer (object, const_void**, Py_ssize_t*) except -1
    int PyObject_AsWriteBuffer(object, void**, Py_ssize_t*) except -1

cdef extern from "Python.h":
    object PyBuffer_FromReadWriteMemory(void*, Py_ssize_t)

#---------------------------------------------------------------------

cdef inline object asbuffer_r(object ob, void** bptr, MPI_Aint* blen):
    cdef const_void *p = NULL
    cdef Py_ssize_t n = 0
    PyObject_AsReadBuffer(ob, &p, &n)
    if bptr: bptr[0] = <void *>p
    if blen: blen[0] = <MPI_Aint>n
    return ob

cdef inline object asbuffer_w(object ob, void** bptr, MPI_Aint* blen):
    cdef void *p = NULL
    cdef Py_ssize_t n = 0
    PyObject_AsWriteBuffer(ob, &p, &n)
    if bptr: bptr[0] = p
    if blen: blen[0] = <MPI_Aint>n
    return ob

#---------------------------------------------------------------------