neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::reference_counted< Base, DeallocateOnRelease > Class Template Reference

#include <reference_counted.hpp>

Inheritance diagram for neolib::reference_counted< Base, DeallocateOnRelease >:
neogfx::DesignStudio::node_pin< i_node_input_pin, pin_type::Input > neogfx::DesignStudio::node_pin< i_node_output_pin, pin_type::Output > neogfx::anchorable< reference_counted< object< i_button > > > neogfx::anchorable< reference_counted< object< i_image_widget > > > neogfx::anchorable< reference_counted< object< i_layout > > > neogfx::anchorable< reference_counted< Base > > neogfx::anchorable< reference_counted< object< i_title_bar > > > neogfx::anchorable< reference_counted< object< i_push_button > > > neogfx::anchorable< reference_counted< object< i_radio_button > > > neogfx::anchorable< reference_counted< object< i_spacer > > > neogfx::anchorable< reference_counted< object< i_status_bar > > > neogfx::anchorable< reference_counted< object< i_terminal > > > neogfx::anchorable< reference_counted< object< i_text_widget > > > neogfx::anchorable< reference_counted< object< i_widget > > > neogfx::anchorable< reference_counted< object< i_window > > > neogfx::anchorable< reference_counted< object< neogfx::i_window > > > neogfx::audio_bitstream< i_audio_instrument > neogfx::audio_bitstream< i_audio_waveform > neogfx::basic_gradient< gradient_sharing::Unique > neogfx::hid_device< i_game_controller > neogfx::hid_device< i_keyboard > neogfx::hid_device< i_mouse > neogfx::shader< i_fragment_shader > neogfx::shader< i_filter_shader > neogfx::shader< i_glyph_shader > neogfx::shader< i_gradient_shader > neogfx::shader< i_shape_shader > neogfx::shader< i_stipple_shader > neogfx::shader< i_texture_shader > neogfx::shader< i_standard_vertex_shader > neogfx::shader< i_vertex_shader > neogfx::shader_program< i_standard_shader_program > neolib::application< object< i_app > > neolib::basic_enum< id_t > neolib::basic_jar< shader_uniform > neolib::basic_jar< neolib::ref_ptr< neogfx::i_transition > > neolib::basic_jar< id_cache_entry > neolib::basic_jar< gradient_list_entry > neolib::basic_jar< texture_list_entry > neolib::container::const_iterator< T, ContainerIterator, i_random_access_const_iterator< abstract_t< T > > > neolib::container::iterator< T, ContainerIterator, ContainerConstIterator, i_random_access_iterator< abstract_t< T > > > neolib::map< neolib::string, neogfx::i_property * > neolib::map< string, i_anchor * > neolib::map< string, abstract_t< shader_variable > * > neolib::map< item_presentation_model_index, selection_area, std::less< item_presentation_model_index >, allocator_type > neolib::map< neolib::string, neolib::variant< neolib::ref_ptr< neogfx::i_resource >, neolib::weak_ref_ptr< neogfx::i_resource > > > neolib::map< string, string > neolib::map< string, map< string, string > > neolib::map< string, ref_ptr< i_setting > > neolib::multimap< string, ref_ptr< i_action > > neolib::optional< neogfx::layout_reason > neolib::optional< point > neolib::optional< size > neolib::optional< padding > neolib::optional< color > neolib::optional< vec4 > neolib::optional< rect > neolib::optional< text_format > neolib::optional< neogfx::sRGB_color > neolib::optional< aabb_2d > neolib::optional< dimension > neolib::optional< alignment > neolib::optional< neolib::string > neolib::optional< mat44 > neolib::optional< vec2 > neolib::set< shader_variable > neolib::set< component_id, std::less< component_id >, neolib::fast_pool_allocator< component_id > > neolib::set< neolib::string > neolib::vector< ref_ptr< i_widget > > neolib::vector< shader_uniform > neolib::vector< stage_t > neolib::vector< ref_ptr< abstract_type > > neolib::vector< ref_ptr< i_node_input_pin > > neolib::vector< ref_ptr< i_node_output_pin > > neolib::vector< ref_ptr< i_node_connection > > neolib::vector< ng::ref_ptr< project > > neolib::vector< neolib::ref_ptr< neogfx::i_transition > > neolib::vector< neogfx::audio_device_info > neolib::vector< neolib::ref_ptr< neogfx::i_audio_device > > neolib::vector< neogfx::audio_data_format > neolib::vector< size_type > neolib::vector< neolib::string > neolib::vector< id_cache_entry > neolib::vector< gradient_list_entry > neolib::vector< neolib::ref_ptr< i_hid_device > > neolib::vector< uint8_t > neolib::vector< element_ptr_t > neolib::vector< shader_t > neolib::vector< neogfx::tab_stop > neolib::vector< texture_list_entry > neolib::vector< string > neolib::vector< ref_ptr< i_plugin > > neolib::vector< setting_value< value_type > > neolib::vector< ref_ptr< i_setting > > neogfx::DesignStudio::console_client neogfx::DesignStudio::element< Type, Base > neogfx::DesignStudio::node_connection neogfx::DesignStudio::node_pin< Base, Type > neogfx::DesignStudio::project neogfx::action neogfx::audio_bitstream< Interface > neogfx::audio_device neogfx::audio_oscillator neogfx::basic_glyph_text_content< Container, ConstIterator, Iterator > neogfx::basic_gradient< Sharing > neogfx::hid_device< HidInterface > neogfx::image neogfx::module_resource neogfx::nrc::ui_element< Base > neogfx::resource neogfx::shader< Base > neogfx::shader_program< Base > neogfx::shader_stage< Base > neogfx::sub_texture neogfx::surface_window neogfx::tab_page neogfx::texture neogfx::transition neolib::application< Base > neolib::basic_jar< T, Container, CookieType, MutexType >

Public Member Functions

 reference_counted () noexcept
 
 reference_counted (const reference_counted &aOther) noexcept
 
 ~reference_counted ()
 
reference_countedoperator= (const reference_counted &)
 
void add_ref () const noexcept override
 
void release () const override
 
int32_t use_count () const noexcept override
 
const base_type * release_and_take_ownership () const override
 
base_type * release_and_take_ownership () override
 
void pin () const noexcept override
 
void unpin () const override
 
i_ref_control_blockcontrol_block () override
 

Detailed Description

template<typename Base, bool DeallocateOnRelease = true>
class neolib::reference_counted< Base, DeallocateOnRelease >

Definition at line 94 of file reference_counted.hpp.

Constructor & Destructor Documentation

◆ reference_counted() [1/2]

template<typename Base , bool DeallocateOnRelease = true>
neolib::reference_counted< Base, DeallocateOnRelease >::reference_counted ( )
inlinenoexcept

Definition at line 101 of file reference_counted.hpp.

◆ reference_counted() [2/2]

template<typename Base , bool DeallocateOnRelease = true>
neolib::reference_counted< Base, DeallocateOnRelease >::reference_counted ( const reference_counted< Base, DeallocateOnRelease > &  aOther)
inlinenoexcept

Definition at line 104 of file reference_counted.hpp.

◆ ~reference_counted()

template<typename Base , bool DeallocateOnRelease = true>
neolib::reference_counted< Base, DeallocateOnRelease >::~reference_counted ( )
inline

Definition at line 107 of file reference_counted.hpp.

Member Function Documentation

◆ add_ref()

template<typename Base , bool DeallocateOnRelease = true>
void neolib::reference_counted< Base, DeallocateOnRelease >::add_ref ( ) const
inlineoverridenoexcept

Definition at line 120 of file reference_counted.hpp.

◆ control_block()

template<typename Base , bool DeallocateOnRelease = true>
i_ref_control_block & neolib::reference_counted< Base, DeallocateOnRelease >::control_block ( )
inlineoverride

Definition at line 160 of file reference_counted.hpp.

◆ operator=()

template<typename Base , bool DeallocateOnRelease = true>
reference_counted & neolib::reference_counted< Base, DeallocateOnRelease >::operator= ( const reference_counted< Base, DeallocateOnRelease > &  )
inline

Definition at line 114 of file reference_counted.hpp.

◆ pin()

template<typename Base , bool DeallocateOnRelease = true>
void neolib::reference_counted< Base, DeallocateOnRelease >::pin ( ) const
inlineoverridenoexcept

Definition at line 149 of file reference_counted.hpp.

◆ release()

template<typename Base , bool DeallocateOnRelease = true>
void neolib::reference_counted< Base, DeallocateOnRelease >::release ( ) const
inlineoverride

Definition at line 124 of file reference_counted.hpp.

◆ release_and_take_ownership() [1/2]

template<typename Base , bool DeallocateOnRelease = true>
const base_type * neolib::reference_counted< Base, DeallocateOnRelease >::release_and_take_ownership ( ) const
inlineoverride

Definition at line 138 of file reference_counted.hpp.

◆ release_and_take_ownership() [2/2]

template<typename Base , bool DeallocateOnRelease = true>
base_type * neolib::reference_counted< Base, DeallocateOnRelease >::release_and_take_ownership ( )
inlineoverride

Definition at line 145 of file reference_counted.hpp.

◆ unpin()

template<typename Base , bool DeallocateOnRelease = true>
void neolib::reference_counted< Base, DeallocateOnRelease >::unpin ( ) const
inlineoverride

Definition at line 153 of file reference_counted.hpp.

◆ use_count()

template<typename Base , bool DeallocateOnRelease = true>
int32_t neolib::reference_counted< Base, DeallocateOnRelease >::use_count ( ) const
inlineoverridenoexcept

Definition at line 134 of file reference_counted.hpp.


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