9#ifndef ROOT7_Browsable_RHolder
10#define ROOT7_Browsable_RHolder
18namespace Experimental {
65 return TClass::GetClass<T>()->InheritsFrom(
GetClass());
71 return const_cast<TClass *
>(
GetClass())->GetBaseClassOffset(TClass::GetClass<T>()) >= 0;
87 auto Copy()
const {
return std::unique_ptr<RHolder>(
DoCopy()); }
99 std::unique_ptr<T> unique;
100 unique.reset((T *)((
char *) pobj +
offset));
115 return *(
static_cast<std::shared_ptr<T> *
>(pshared));
118 return get_unique<T>();
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Basic class for object holder of any kind.
auto Copy() const
Clone container.
virtual void Forget()
Clear all pointers without performing cleanup.
virtual const TClass * GetClass() const =0
Returns class of contained object.
virtual void * GetShared() const
Returns pointer on existing shared_ptr<T>
virtual void * AccessObject()
Returns plain object pointer without care about ownership, should not be used often.
std::shared_ptr< T > get_shared()
Returns shared_ptr of contained object.
std::unique_ptr< T > get_unique()
Returns unique_ptr of contained object.
virtual void * TakeObject()
Returns pointer with ownership, normally via unique_ptr<T>::release() or tobj->Clone()
virtual RHolder * DoCopy() const
Create copy of container, works only when pointer can be shared.
virtual const void * GetObject() const =0
Returns direct (temporary) object pointer.
virtual ~RHolder()=default
T * get_object()
Returns plains pointer on object without ownership, only can be used for TObjects.
const T * Get() const
Returns direct object pointer cast to provided class.
bool InheritsFrom() const
A log configuration for a channel, e.g.
TClass instances represent classes, structs and namespaces in the ROOT type system.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
ROOT::Experimental::RLogChannel & BrowsableLog()
Log channel for Browsable diagnostics.