File: asbuffer.pxi

package info (click to toggle)
paraview 3.14.1-6
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 234,468 kB
  • sloc: cpp: 2,166,013; ansic: 801,575; xml: 58,068; tcl: 49,247; python: 43,091; java: 16,625; fortran: 12,224; sh: 11,722; yacc: 5,688; perl: 3,128; makefile: 2,228; lex: 1,311; lisp: 486; asm: 471; pascal: 228
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

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