μHAL (v2.8.17)
Part of the IPbus software repository
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Member Functions | Public Attributes | List of all members
object Class Reference

\rst Holds a reference to a Python object (with reference counting) More...

#include </builds/ipbus/ipbus-software/uhal/python/pybind11-python2/include/pybind11/pytypes.h>

Inherits handle, and handle.

Inherited by anyset, bool_, bool_, buffer, buffer, bytearray, bytearray, bytes, bytes, capsule, capsule, conftest.Capture, conftest.Output, conftest.SanitizedString, dict, dict, dtype, dtype, ellipsis, ellipsis, exception< type >, exception< type >, float_, float_, function, function, generic_type, generic_type, int_, int_, iterable, iterable, iterator, iterator, list, list, memoryview, memoryview, module_, module_, none, none, sequence, sequence, set, slice, slice, staticmethod, staticmethod, str, str, tuple, tuple, type, type, weakref, and weakref.

Collaboration diagram for object:
[legend]

Classes

struct  borrowed_t
 
struct  stolen_t
 

Public Member Functions

 object ()=default
 
 PYBIND11_DEPRECATED ("Use reinterpret_borrow<object>() or reinterpret_steal<object>()") object(handle h
 
 object (const object &o)
 Copy constructor; always increases the reference count. More...
 
 object (object &&other) noexcept
 Move constructor; steals the object from other and preserves its reference count. More...
 
 ~object ()
 Destructor; automatically calls handle::dec_ref() More...
 
handle release ()
 \rst Resets the internal pointer to nullptr without decreasing the object's reference count. More...
 
objectoperator= (const object &other)
 
objectoperator= (object &&other) noexcept
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
 object (handle h, borrowed_t)
 
 object (handle h, stolen_t)
 
 object ()=default
 
 PYBIND11_DEPRECATED ("Use reinterpret_borrow<object>() or reinterpret_steal<object>()") object(handle h
 
 object (const object &o)
 Copy constructor; always increases the reference count. More...
 
 object (object &&other) noexcept
 Move constructor; steals the object from other and preserves its reference count. More...
 
 ~object ()
 Destructor; automatically calls handle::dec_ref() More...
 
handle release ()
 \rst Resets the internal pointer to nullptr without decreasing the object's reference count. More...
 
objectoperator= (const object &other)
 
objectoperator= (object &&other) noexcept
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
 object (handle h, borrowed_t)
 
 object (handle h, stolen_t)
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
template<>
void cast () const &
 
template<>
void cast () &&
 
- Public Member Functions inherited from handle
 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 &
 \rst Manually increase the reference count of the Python object. More...
 
const handledec_ref () const &
 \rst Manually decrease the reference count of the Python object. More...
 
template<typename T >
cast () const
 \rst Attempt to cast the Python object into the given C++ type. More...
 
 operator bool () const
 Return true when the handle wraps a valid Python object. More...
 
bool operator== (const handle &h) const
 \rst Deprecated: Check that the underlying pointers are the same. More...
 
bool operator!= (const handle &h) const
 
bool check () const
 
 handle ()=default
 The default constructor creates a handle with a nullptr-valued pointer. More...
 
template<typename T , detail::enable_if_t< detail::is_pyobj_ptr_or_nullptr_t< T >::value, int > = 0>
 handle (T ptr)
 Enable implicit conversion from PyObject * and nullptr. More...
 
template<typename T , detail::enable_if_t< detail::all_of< detail::none_of< std::is_base_of< handle, T >, detail::is_pyobj_ptr_or_nullptr_t< T > >, std::is_convertible< T, PyObject * > >::value, int > = 0>
 handle (T &obj)
 Enable implicit conversion through T::operator PyObject *(). More...
 
PyObject * ptr () const
 Return the underlying PyObject * pointer. More...
 
PyObject *& ptr ()
 
const handleinc_ref () const &
 \rst Manually increase the reference count of the Python object. More...
 
const handledec_ref () const &
 \rst Manually decrease the reference count of the Python object. More...
 
template<typename T >
cast () const
 \rst Attempt to cast the Python object into the given C++ type. More...
 
 operator bool () const
 Return true when the handle wraps a valid Python object. More...
 
bool operator== (const handle &h) const
 \rst Deprecated: Check that the underlying pointers are the same. More...
 
bool operator!= (const handle &h) const
 
bool check () const
 
template<>
void cast () const
 

Public Attributes

bool is_borrowed: handle(h) { if (is_borrowed) { inc_ref()
 

Additional Inherited Members

- Static Public Member Functions inherited from handle
static std::size_t inc_ref_counter ()
 
- Protected Attributes inherited from handle
PyObject * m_ptr = nullptr
 

Detailed Description

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

Like handle, the object class is a thin wrapper around an arbitrary Python object (i.e. a PyObject * in Python's C API). In contrast to handle, it optionally increases the object's reference count upon construction, and it always* decreases the reference count when the object instance goes out of scope and is destructed. When using object instances consistently, it is much easier to get reference counting right at the first attempt. \endrst

Like handle, the object class is a thin wrapper around an arbitrary Python object (i.e. a PyObject * in Python's C API). In contrast to handle, it optionally increases the object's reference count upon construction, and it always* decreases the reference count when the object instance goes out of scope and is destructed. When using object instances consistently, it is much easier to get reference counting right at the first attempt. \endrst

Definition at line 259 of file pytypes.h.

Constructor & Destructor Documentation

◆ object() [1/10]

object::object ( )
default

Referenced by slice::index_to_object().

◆ object() [2/10]

object::object ( const object o)
inline

Copy constructor; always increases the reference count.

Definition at line 269 of file pytypes.h.

References handle::inc_ref().

◆ object() [3/10]

object::object ( object &&  other)
inlinenoexcept

Move constructor; steals the object from other and preserves its reference count.

Definition at line 271 of file pytypes.h.

References handle::m_ptr.

◆ ~object() [1/2]

object::~object ( )
inline

Destructor; automatically calls handle::dec_ref()

Definition at line 276 of file pytypes.h.

References handle::dec_ref().

◆ object() [4/10]

object::object ( handle  h,
borrowed_t   
)
inline

Definition at line 330 of file pytypes.h.

References handle::inc_ref().

◆ object() [5/10]

object::object ( handle  h,
stolen_t   
)
inline

Definition at line 331 of file pytypes.h.

◆ object() [6/10]

object::object ( )
default

◆ object() [7/10]

object::object ( const object o)
inline

Copy constructor; always increases the reference count.

Definition at line 352 of file pytypes.h.

References handle::inc_ref().

◆ object() [8/10]

object::object ( object &&  other)
inlinenoexcept

Move constructor; steals the object from other and preserves its reference count.

Definition at line 354 of file pytypes.h.

◆ ~object() [2/2]

object::~object ( )
inline

Destructor; automatically calls handle::dec_ref()

Definition at line 356 of file pytypes.h.

References handle::dec_ref().

◆ object() [9/10]

object::object ( handle  h,
borrowed_t   
)
inline

Definition at line 427 of file pytypes.h.

References handle::inc_ref().

◆ object() [10/10]

object::object ( handle  h,
stolen_t   
)
inline

Definition at line 428 of file pytypes.h.

Member Function Documentation

◆ cast() [1/8]

template<typename T >
T object::cast ( ) &&

Definition at line 1136 of file cast.h.

◆ cast() [2/8]

template<>
void object::cast ( ) &&
inline

Definition at line 1144 of file cast.h.

◆ cast() [3/8]

template<typename T >
T object::cast ( ) &&

◆ cast() [4/8]

template<typename T >
T object::cast ( ) &&

◆ cast() [5/8]

template<typename T >
T object::cast ( ) const &

Definition at line 1132 of file cast.h.

◆ cast() [6/8]

template<>
void object::cast ( ) const &
inline

Definition at line 1140 of file cast.h.

◆ cast() [7/8]

template<typename T >
T object::cast ( ) const &

◆ cast() [8/8]

template<typename T >
T object::cast ( ) const &

◆ operator=() [1/4]

object & object::operator= ( const object other)
inline

Definition at line 289 of file pytypes.h.

References handle::dec_ref(), handle::inc_ref(), and handle::m_ptr.

◆ operator=() [2/4]

object & object::operator= ( const object other)
inline

Definition at line 369 of file pytypes.h.

References handle::dec_ref(), handle::inc_ref(), and handle::m_ptr.

◆ operator=() [3/4]

object & object::operator= ( object &&  other)
inlinenoexcept

Definition at line 299 of file pytypes.h.

References handle::dec_ref(), and handle::m_ptr.

◆ operator=() [4/4]

object & object::operator= ( object &&  other)
inlinenoexcept

Definition at line 382 of file pytypes.h.

References handle::dec_ref(), and handle::m_ptr.

◆ PYBIND11_DEPRECATED() [1/2]

object::PYBIND11_DEPRECATED ( "Use reinterpret_borrow<object>() or reinterpret_steal<object>()"  )

◆ PYBIND11_DEPRECATED() [2/2]

object::PYBIND11_DEPRECATED ( "Use reinterpret_borrow<object>() or reinterpret_steal<object>()"  )

References handle::inc_ref(), and is_borrowed.

◆ release() [1/2]

handle object::release ( )
inline

◆ release() [2/2]

handle object::release ( )
inline

\rst Resets the internal pointer to nullptr without decreasing the object's reference count.

The function returns a raw handle to the original Python object. \endrst

Definition at line 363 of file pytypes.h.

References handle::handle(), and handle::m_ptr.

Member Data Documentation

◆ is_borrowed

bool object::is_borrowed

Definition at line 263 of file pytypes.h.

Referenced by PYBIND11_DEPRECATED().


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