LSST Applications g0265f82a02+c6dfa2ddaf,g1162b98a3f+b2075782a9,g2079a07aa2+1b2e822518,g2bbee38e9b+c6dfa2ddaf,g337abbeb29+c6dfa2ddaf,g3ddfee87b4+a60788ef87,g50ff169b8f+2eb0e556e8,g52b1c1532d+90ebb246c7,g555ede804d+a60788ef87,g591dd9f2cf+ba8caea58f,g5ec818987f+864ee9cddb,g858d7b2824+9ee1ab4172,g876c692160+a40945ebb7,g8a8a8dda67+90ebb246c7,g8cdfe0ae6a+4fd9e222a8,g99cad8db69+5e309b7bc6,g9ddcbc5298+a1346535a5,ga1e77700b3+df8f93165b,ga8c6da7877+aa12a14d27,gae46bcf261+c6dfa2ddaf,gb0e22166c9+8634eb87fb,gb3f2274832+d0da15e3be,gba4ed39666+1ac82b564f,gbb8dafda3b+5dfd9c994b,gbeb006f7da+97157f9740,gc28159a63d+c6dfa2ddaf,gc86a011abf+9ee1ab4172,gcf0d15dbbd+a60788ef87,gdaeeff99f8+1cafcb7cd4,gdc0c513512+9ee1ab4172,ge79ae78c31+c6dfa2ddaf,geb67518f79+ba1859f325,geb961e4c1e+f9439d1e6f,gee10cc3b42+90ebb246c7,gf1cff7945b+9ee1ab4172,w.2024.12
LSST Data Management Base Package
|
A shared pointer that tracks both a C++ object and its associated PyObject. More...
#include <PySharedPtr.h>
Public Types | |
using | element_type = T |
using | element_type = T |
Public Member Functions | |
PySharedPtr (T *const ptr) | |
Create a pointer that counts as an extra reference in the Python environment. | |
PySharedPtr (PySharedPtr const &) noexcept=default | |
PySharedPtr (PySharedPtr &&) noexcept=default | |
PySharedPtr & | operator= (PySharedPtr const &) noexcept=default |
PySharedPtr & | operator= (PySharedPtr &&) noexcept=default |
~PySharedPtr () noexcept=default | |
PySharedPtr (std::shared_ptr< T > r) noexcept | |
operator std::shared_ptr< T > () noexcept | |
T * | get () const noexcept |
PySharedPtr (T *const ptr) | |
Create a pointer that counts as an extra reference in the Python environment. | |
PySharedPtr (PySharedPtr const &) noexcept=default | |
PySharedPtr (PySharedPtr &&) noexcept=default | |
PySharedPtr & | operator= (PySharedPtr const &) noexcept=default |
PySharedPtr & | operator= (PySharedPtr &&) noexcept=default |
~PySharedPtr () noexcept=default | |
PySharedPtr (std::shared_ptr< T > r) noexcept | |
operator std::shared_ptr< T > () noexcept | |
T * | get () const noexcept |
A shared pointer that tracks both a C++ object and its associated PyObject.
Each group of PySharedPtr for a given object collectively counts as one reference to that object for the purpose of Python garbage collection.
A PySharedPtr is implicitly convertible to and from a std::shared_ptr to minimize API impact. Any shared_ptr
created this way will (I think) keep the Python reference alive, as described above.
Definition at line 49 of file PySharedPtr.h.
using lsst::cpputils::python::PySharedPtr< T >::element_type = T |
Definition at line 51 of file PySharedPtr.h.
using lsst::cpputils::python::PySharedPtr< T >::element_type = T |
Definition at line 51 of file PySharedPtr.h.
|
inlineexplicit |
Create a pointer that counts as an extra reference in the Python environment.
ptr | a pointer to a pybind11-managed object. |
Definition at line 59 of file PySharedPtr.h.
|
defaultnoexcept |
|
defaultnoexcept |
|
defaultnoexcept |
|
inlinenoexcept |
Definition at line 78 of file PySharedPtr.h.
|
inlineexplicit |
Create a pointer that counts as an extra reference in the Python environment.
ptr | a pointer to a pybind11-managed object. |
Definition at line 59 of file PySharedPtr.h.
|
defaultnoexcept |
|
defaultnoexcept |
|
defaultnoexcept |
|
inlinenoexcept |
Definition at line 78 of file PySharedPtr.h.
|
inlinenoexcept |
Definition at line 81 of file PySharedPtr.h.
|
inlinenoexcept |
Definition at line 81 of file PySharedPtr.h.
|
inlinenoexcept |
Definition at line 79 of file PySharedPtr.h.
|
inlinenoexcept |
Definition at line 79 of file PySharedPtr.h.
|
defaultnoexcept |
|
defaultnoexcept |
|
defaultnoexcept |
|
defaultnoexcept |