File: /Users/paulross/dev/Python-3.6.2/Include/pycapsule.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: 
       2: /* Capsule objects let you wrap a C "void *" pointer in a Python
       3:    object.  They're a way of passing data through the Python interpreter
       4:    without creating your own custom type.
       5: 
       6:    Capsules are used for communication between extension modules.
       7:    They provide a way for an extension module to export a C interface
       8:    to other extension modules, so that extension modules can use the
       9:    Python import mechanism to link to one another.
      10: 
      11:    For more information, please see "c-api/capsule.html" in the
      12:    documentation.
      13: */
      14: 
      15: #ifndef Py_CAPSULE_H
      16: #define Py_CAPSULE_H
      17: #ifdef __cplusplus
      18: extern "C" {
      19: #endif
      20: 
      21: PyAPI_DATA(PyTypeObject) PyCapsule_Type;
      22: 
      23: typedef void (*PyCapsule_Destructor)(PyObject *);
      24: 
      25: #define PyCapsule_CheckExact(op) (Py_TYPE(op) == &PyCapsule_Type)
      26: 
      27: 
      28: PyAPI_FUNC(PyObject *) PyCapsule_New(
      29:     void *pointer,
      30:     const char *name,
      31:     PyCapsule_Destructor destructor);
      32: 
      33: PyAPI_FUNC(void *) PyCapsule_GetPointer(PyObject *capsule, const char *name);
      34: 
      35: PyAPI_FUNC(PyCapsule_Destructor) PyCapsule_GetDestructor(PyObject *capsule);
      36: 
      37: PyAPI_FUNC(const char *) PyCapsule_GetName(PyObject *capsule);
      38: 
      39: PyAPI_FUNC(void *) PyCapsule_GetContext(PyObject *capsule);
      40: 
      41: PyAPI_FUNC(int) PyCapsule_IsValid(PyObject *capsule, const char *name);
      42: 
      43: PyAPI_FUNC(int) PyCapsule_SetPointer(PyObject *capsule, void *pointer);
      44: 
      45: PyAPI_FUNC(int) PyCapsule_SetDestructor(PyObject *capsule, PyCapsule_Destructor destructor);
      46: 
      47: PyAPI_FUNC(int) PyCapsule_SetName(PyObject *capsule, const char *name);
      48: 
      49: PyAPI_FUNC(int) PyCapsule_SetContext(PyObject *capsule, void *context);
      50: 
      51: PyAPI_FUNC(void *) PyCapsule_Import(
      52:     const char *name,           /* UTF-8 encoded string */
      53:     int no_block);
      54: 
      55: 
      56: #ifdef __cplusplus
      57: }
      58: #endif
      59: #endif /* !Py_CAPSULE_H */
      60: