.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.RefCounter:

==========================================================================================================================================
|phoenix_title|  **wx.RefCounter**
==========================================================================================================================================

This class is used to manage reference-counting providing a simple interface and a counter. 
         

:ref:`wx.RefCounter`  can be easily used together with `wx.ObjectDataPtr`       to ensure that no calls to :meth:`wx.RefCounter.DecRef`   are missed - thus avoiding memory leaks. 

`wx.ObjectRefData`       is a typedef to :ref:`wx.RefCounter`  and is used as the built-in reference counted storage for Object-derived classes. 








         



.. seealso:: :ref:`wx.Object`, `wx.ObjectRefData`     , `wx.ObjectDataPtr`     , :ref:`Reference Counting <reference counting>`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>RefCounter</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.RefCounter_inheritance.svg" alt="Inheritance diagram of RefCounter" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.RefCounter.html" title="This class is used to manage reference-counting providing a simple interface and a counter." alt="" coords="5,5,140,34"/> </map> 
   </p>
   </div>

|


|sub_classes| Known Subclasses
==============================

:ref:`wx.BitmapBundleImpl`, :ref:`wx.dataview.DataViewModel`, :ref:`wx.grid.GridCellAttr`, :ref:`wx.grid.GridCellEditor`, :ref:`wx.grid.GridCellRenderer`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.RefCounter.__init__`                                                  Default constructor.
:meth:`~wx.RefCounter.DecRef`                                                    Decrements the reference count associated with this shared data and, if it reaches zero, destroys this instance of :ref:`wx.RefCounter`  releasing its memory.
:meth:`~wx.RefCounter.GetRefCount`                                               Returns the reference count associated with this shared data.
:meth:`~wx.RefCounter.IncRef`                                                    Increments the reference count associated with this shared data.
:meth:`~wx.RefCounter.~wxRefCounter`                                             Destructor.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.RefCounter.RefCount`                                                  See :meth:`~wx.RefCounter.GetRefCount`
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.RefCounter(object)

   **Possible constructors**::

       RefCounter() -> None
       
   
   This class is used to manage reference-counting providing a simple
   interface and a counter.



   .. method:: __init__(self)

      Default constructor. 
                 

      Initialises the internal reference count to 1. 
                 

      :rtype: `None`     








   .. method:: DecRef(self)

      Decrements the reference count associated with this shared data and, if it reaches zero, destroys this instance of :ref:`wx.RefCounter`  releasing its memory. 
                 

      Please note that after calling this function, the caller should absolutely avoid to use the pointer to this instance since it may not be valid anymore. 
                 

      :rtype: `None`     








   .. method:: GetRefCount(self)

      Returns the reference count associated with this shared data. 
                 

      When this goes to zero during a :meth:`DecRef`   call, the object will auto-free itself. 
                 

      :rtype: `int`








   .. method:: IncRef(self)

      Increments the reference count associated with this shared data. 
                 

      :rtype: `None`     








   .. method:: ~wxRefCounter(self)

      Destructor. 
                 

      It's declared  ``protected``   so that  :ref:`wx.RefCounter`  instances will never be destroyed directly but only as result of a :meth:`DecRef`   call. 
                 

      :rtype: `None`     








   .. attribute:: RefCount

      See :meth:`~wx.RefCounter.GetRefCount`

