HepMC3 event record library
Public Member Functions | Protected Attributes
handle Class Reference

#include <pytypes.h>

+ Inheritance diagram for handle:
+ Collaboration diagram for handle:

Public Member Functions

 handle ()=default
 The default constructor creates a handle with a nullptr-valued pointer. More...
 
 handle (PyObject *ptr)
 Creates a handle from the given raw Python object pointer. More...
 
PyObject * ptr () const
 Return the underlying PyObject * pointer. More...
 
PyObject *& ptr ()
 
const handleinc_ref () const &
 
const handledec_ref () const &
 
template<typename T >
cast () const
 
 operator bool () const
 Return true when the handle wraps a valid Python object. More...
 
bool operator== (const handle &h) const
 
bool operator!= (const handle &h) const
 
bool check () const
 

Protected Attributes

PyObject * m_ptr = nullptr
 

Detailed Description

\rst
Holds a reference to a Python object (no reference counting)

The `handle` class is a thin wrapper around an arbitrary Python object (i.e. a
``PyObject *`` in Python's C API). It does not perform any automatic reference
counting and merely provides a basic C++ interface to various Python API functions.

.. seealso::
    The `object` class inherits from `handle` and adds automatic reference
    counting features.

Definition at line 176 of file pytypes.h.

Constructor & Destructor Documentation

handle ( )
default

The default constructor creates a handle with a nullptr-valued pointer.

handle ( PyObject *  ptr)
inline

Creates a handle from the given raw Python object pointer.

Definition at line 181 of file pytypes.h.

Member Function Documentation

T cast ( ) const
\rst
Attempt to cast the Python object into the given C++ type. A `cast_error`
will be throw upon failure.
const handle& dec_ref ( ) const
inline
\rst
Manually decrease the reference count of the Python object. Usually, it is
preferable to use the `object` class which derives from `handle` and calls
this function automatically. Returns a reference to itself.

Definition at line 199 of file pytypes.h.

const handle& inc_ref ( ) const
inline
\rst
Manually increase the reference count of the Python object. Usually, it is
preferable to use the `object` class which derives from `handle` and calls
this function automatically. Returns a reference to itself.

Definition at line 192 of file pytypes.h.

operator bool ( ) const
inlineexplicit

Return true when the handle wraps a valid Python object.

Definition at line 207 of file pytypes.h.

bool operator== ( const handle h) const
inline
\rst
Deprecated: Check that the underlying pointers are the same.
Equivalent to ``obj1 is obj2`` in Python.

Definition at line 213 of file pytypes.h.

PyObject* ptr ( ) const
inline

Return the underlying PyObject * pointer.

Definition at line 184 of file pytypes.h.


The documentation for this class was generated from the following file: