Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Browsable::RUnique< T > Class Template Reference

template<class T>
class ROOT::Browsable::RUnique< T >

Definition at line 25 of file RUnique.hxx.

Public Member Functions

 RUnique (std::unique_ptr< T > &&obj)
 
 RUnique (T *obj)
 
virtual ~RUnique ()=default
 
template<class T >
bool CanCastTo () const
 
auto Copy () const
 Clone container.
 
virtual void Forget ()
 Clear all pointers without performing cleanup.
 
template<class T >
const T * Get () const
 Returns direct object pointer cast to provided class.
 
template<class T >
T * get_object ()
 Returns plains pointer on object without ownership, only can be used for TObjects.
 
template<class T >
std::shared_ptr< T > get_shared ()
 Returns shared_ptr of contained object.
 
template<class T >
std::unique_ptr< T > get_unique ()
 Returns unique_ptr of contained object.
 
const TClass * GetClass () const final
 Returns class of contained object.
 
const void * GetObject () const final
 Returns direct (temporary) object pointer.
 
template<class T >
bool InheritsFrom () const
 

Protected Member Functions

virtual void * AccessObject ()
 Returns plain object pointer without care about ownership, should not be used often.
 
virtual RHolder * DoCopy () const
 Create copy of container, works only when pointer can be shared.
 
virtual void * GetShared () const
 Returns pointer on existing shared_ptr<T>
 
void * TakeObject () final
 Returns pointer with ownership, normally via unique_ptr<T>::release() or tobj->Clone()
 

Private Attributes

std::unique_ptr< T > fUnique
 ! holder without IO
 

#include <ROOT/Browsable/RUnique.hxx>

Inheritance diagram for ROOT::Browsable::RUnique< T >:
[legend]

Constructor & Destructor Documentation

◆ RUnique() [1/2]

template<class T >
ROOT::Browsable::RUnique< T >::RUnique ( T * obj)
inline

Definition at line 30 of file RUnique.hxx.

◆ RUnique() [2/2]

template<class T >
ROOT::Browsable::RUnique< T >::RUnique ( std::unique_ptr< T > && obj)
inline

Definition at line 31 of file RUnique.hxx.

◆ ~RUnique()

template<class T >
virtual ROOT::Browsable::RUnique< T >::~RUnique ( )
virtualdefault

Member Function Documentation

◆ AccessObject()

virtual void * ROOT::Browsable::RHolder::AccessObject ( )
inlineprotectedvirtualinherited

Returns plain object pointer without care about ownership, should not be used often.

Reimplemented in ROOT::Browsable::RAnyObjectHolder, and ROOT::Browsable::TObjectHolder.

Definition at line 42 of file RHolder.hxx.

◆ CanCastTo()

template<class T >
bool ROOT::Browsable::RHolder::CanCastTo ( ) const
inlineinherited

Definition at line 66 of file RHolder.hxx.

◆ Copy()

auto ROOT::Browsable::RHolder::Copy ( ) const
inlineinherited

Clone container.

Trivial for shared_ptr and TObject holder, does not work for unique_ptr

Definition at line 84 of file RHolder.hxx.

◆ DoCopy()

virtual RHolder * ROOT::Browsable::RHolder::DoCopy ( ) const
inlineprotectedvirtualinherited

Create copy of container, works only when pointer can be shared.

Reimplemented in ROOT::Browsable::RAnyObjectHolder, ROOT::Browsable::RShared< T >, and ROOT::Browsable::TObjectHolder.

Definition at line 45 of file RHolder.hxx.

◆ Forget()

virtual void ROOT::Browsable::RHolder::Forget ( )
inlinevirtualinherited

Clear all pointers without performing cleanup.

Reimplemented in ROOT::Browsable::RAnyObjectHolder, and ROOT::Browsable::TObjectHolder.

Definition at line 57 of file RHolder.hxx.

◆ Get()

template<class T >
const T * ROOT::Browsable::RHolder::Get ( ) const
inlineinherited

Returns direct object pointer cast to provided class.

Definition at line 74 of file RHolder.hxx.

◆ get_object()

template<class T >
T * ROOT::Browsable::RHolder::get_object ( )
inlineinherited

Returns plains pointer on object without ownership, only can be used for TObjects.

Definition at line 120 of file RHolder.hxx.

◆ get_shared()

template<class T >
std::shared_ptr< T > ROOT::Browsable::RHolder::get_shared ( )
inlineinherited

Returns shared_ptr of contained object.

Definition at line 105 of file RHolder.hxx.

◆ get_unique()

template<class T >
std::unique_ptr< T > ROOT::Browsable::RHolder::get_unique ( )
inlineinherited

Returns unique_ptr of contained object.

Definition at line 88 of file RHolder.hxx.

◆ GetClass()

template<class T >
const TClass * ROOT::Browsable::RUnique< T >::GetClass ( ) const
inlinefinalvirtual

Returns class of contained object.

Implements ROOT::Browsable::RHolder.

Definition at line 34 of file RUnique.hxx.

◆ GetObject()

template<class T >
const void * ROOT::Browsable::RUnique< T >::GetObject ( ) const
inlinefinalvirtual

Returns direct (temporary) object pointer.

Implements ROOT::Browsable::RHolder.

Definition at line 35 of file RUnique.hxx.

◆ GetShared()

virtual void * ROOT::Browsable::RHolder::GetShared ( ) const
inlineprotectedvirtualinherited

Returns pointer on existing shared_ptr<T>

Reimplemented in ROOT::Browsable::RShared< T >.

Definition at line 36 of file RHolder.hxx.

◆ InheritsFrom()

template<class T >
bool ROOT::Browsable::RHolder::InheritsFrom ( ) const
inlineinherited

Definition at line 60 of file RHolder.hxx.

◆ TakeObject()

template<class T >
void * ROOT::Browsable::RUnique< T >::TakeObject ( )
inlinefinalprotectedvirtual

Returns pointer with ownership, normally via unique_ptr<T>::release() or tobj->Clone()

Reimplemented from ROOT::Browsable::RHolder.

Definition at line 28 of file RUnique.hxx.

Member Data Documentation

◆ fUnique

template<class T >
std::unique_ptr<T> ROOT::Browsable::RUnique< T >::fUnique
private

! holder without IO

Definition at line 26 of file RUnique.hxx.

  • gui/browsable/inc/ROOT/Browsable/RUnique.hxx