ossrv_pub/boost_apis/boost/python/refcount.hpp
changeset 0 e4d67989cc36
equal deleted inserted replaced
-1:000000000000 0:e4d67989cc36
       
     1 // Copyright David Abrahams 2002.
       
     2 // Distributed under the Boost Software License, Version 1.0. (See
       
     3 // accompanying file LICENSE_1_0.txt or copy at
       
     4 // http://www.boost.org/LICENSE_1_0.txt)
       
     5 #ifndef REFCOUNT_DWA2002615_HPP
       
     6 # define REFCOUNT_DWA2002615_HPP
       
     7 
       
     8 # include <boost/python/detail/prefix.hpp>
       
     9 # include <boost/python/cast.hpp>
       
    10 
       
    11 namespace boost { namespace python { 
       
    12 
       
    13 template <class T>
       
    14 inline T* incref(T* p)
       
    15 {
       
    16     Py_INCREF(python::upcast<PyObject>(p));
       
    17     return p;
       
    18 }
       
    19 
       
    20 template <class T>
       
    21 inline T* xincref(T* p)
       
    22 {
       
    23     Py_XINCREF(python::upcast<PyObject>(p));
       
    24     return p;
       
    25 }
       
    26 
       
    27 template <class T>
       
    28 inline void decref(T* p)
       
    29 {
       
    30     Py_DECREF(python::upcast<PyObject>(p));
       
    31 }
       
    32 
       
    33 template <class T>
       
    34 inline void xdecref(T* p)
       
    35 {
       
    36     Py_XDECREF(python::upcast<PyObject>(p));
       
    37 }
       
    38 
       
    39 }} // namespace boost::python
       
    40 
       
    41 #endif // REFCOUNT_DWA2002615_HPP