Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
Rtypes.h File Reference
#include "RtypesCore.h"
#include <cstdio>
#include "strtok.h"
#include "strlcpy.h"
#include <type_traits>
#include <typeinfo>
#include <atomic>
#include "TGenericClassInfo.h"
#include "TIsAProxy.h"
#include <string>
Include dependency graph for Rtypes.h:

Classes

class  ROOT::Internal::ClassDefGenerateInitInstanceLocalInjector< T >
 
class  ROOT::Internal::TCDGIILIBase
 
class  ROOT::Internal::TDefaultInitBehavior
 
struct  ROOT::Internal::THashConsistencyHolder< T >
 
class  ROOT::Internal::TInitBehavior
 

Namespaces

namespace  ROOT
 
namespace  ROOT::Internal
 

Macros

#define _ClassDefBase_(name, id, virtual_keyword, overrd)
 Common part being called both by _ClassDefOutline_ and _ClassDefInline_.
 
#define _ClassDefInline_(name, id, virtual_keyword, overrd)
 
#define _ClassDefOutline_(name, id, virtual_keyword, overrd)
 
#define BIT(n)   (1ULL << (n))
 
#define ClassDef(name, id)
 
#define ClassDef2T2(name, Tmpl1, Tmpl2)
 
#define ClassDef3T2(name, Tmpl1, Tmpl2, Tmpl3)
 
#define ClassDefInline(name, id)
 
#define ClassDefInlineNV(name, id)
 
#define ClassDefInlineOverride(name, id)
 
#define ClassDefNV(name, id)
 
#define ClassDefOverride(name, id)
 
#define ClassDefT(name, id)
 This ClassDefT is strictly redundant and is kept only for backward compatibility.
 
#define ClassDefT2(name, Tmpl)
 
#define ClassDefTNV(name, id)
 
#define ClassImp(name)   ClassImpUnique(name,default)
 
#define ClassImp2T(name, Tmpl1, Tmpl2)   templateClassImp(name)
 
#define ClassImp3T(name, Tmpl1, Tmpl2, Tmpl3)   templateClassImp(name)
 
#define ClassImpT(name, Tmpl)   templateClassImp(name)
 
#define ClassImpUnique(name, key)
 
#define CLRBIT(n, i)   ((n) &= ~BIT(i))
 
#define NamespaceImp(name)   NamespaceImpUnique(name,default)
 
#define NamespaceImpUnique(name, key)
 Macro for Namespace.
 
#define R__ADD_INCLUDE_PATH(PATH)
 
#define R__ADD_LIBRARY_PATH(PATH)
 
#define R__CLING_PTRCHECK(ONOFF)
 
#define R__LOAD_LIBRARY(LIBRARY)
 
#define R__UseDummy(name)    class _NAME2_(name,_c) { public: _NAME2_(name,_c)() { if (name) { } } }
 
#define RootClassVersion(name, VersionNumber)
 
#define RootStreamer(name, STREAMER)
 
#define SETBIT(n, i)   ((n) |= BIT(i))
 
#define templateClassImp(name)   templateClassImpUnique(name,default)
 
#define templateClassImpUnique(name, key)
 
#define TESTBIT(n, i)   ((Bool_t)(((n) & BIT(i)) != 0))
 

Typedefs

typedef std::atomic< TClass * > atomic_TClass_ptr
 
typedef void(* ROOT::BrowseFunc_t) (const void *, TBrowser *)
 
typedef void(* ClassConvStreamerFunc_t) (TBuffer &, void *, const TClass *)
 
typedef void(* ClassStreamerFunc_t) (TBuffer &, void *)
 
typedef void(* ROOT::DelArrFunc_t) (void *)
 
typedef void(* ROOT::DelFunc_t) (void *)
 
typedef void(* ROOT::DesFunc_t) (void *)
 
typedef TClass *(* DictFuncPtr_t) ()
 
typedef void(* ROOT::DirAutoAdd_t) (void *, TDirectory *)
 
typedef TClass *(* IsAGlobalFunc_t) (const TClass *, const void *obj)
 
typedef void(* MemberStreamerFunc_t) (TBuffer &, void *, Int_t)
 
typedef Long64_t(* ROOT::MergeFunc_t) (void *, TCollection *, TFileMergeInfo *)
 
typedef void *(* ROOT::NewArrFunc_t) (Long_t size, void *arena)
 
typedef void *(* ROOT::NewFunc_t) (void *)
 
typedef void(* ROOT::ResetAfterMergeFunc_t) (void *, TFileMergeInfo *)
 
typedef void(* ShowMembersFunc_t) (const void *obj, TMemberInspector &R__insp, Bool_t isTransient)
 
typedef void(* VoidFuncPtr_t) ()
 

Enumerations

enum  EColor {
  kWhite =0 , kBlack =1 , kGray =920 , kRed =632 ,
  kGreen =416 , kBlue =600 , kYellow =400 , kMagenta =616 ,
  kCyan =432 , kOrange =800 , kSpring =820 , kTeal =840 ,
  kAzure =860 , kViolet =880 , kPink =900 , kGrape =100 ,
  kBrown =101 , kAsh =102 , kP6Blue =103 , kP6Yellow =104 ,
  kP6Red =105 , kP6Grape =106 , kP6Gray =107 , kP6Violet =108 ,
  kP8Blue =109 , kP8Orange =110 , kP8Red =111 , kP8Pink =112 ,
  kP8Green =113 , kP8Cyan =114 , kP8Azure =115 , kP8Gray =116 ,
  kP10Blue =117 , kP10Yellow =118 , kP10Red =119 , kP10Gray =120 ,
  kP10Violet =121 , kP10Brown =122 , kP10Orange =123 , kP10Green =124 ,
  kP10Ash =125 , kP10Cyan =126
}
 
enum  ESysConstants { kMAXSIGNALS = 16 , kMAXPATHLEN = 8192 , kBUFFERSIZE = 8192 , kItimerResolution = 5 }
 

Functions

void ROOT::AddClass (const char *cname, Version_t id, const std::type_info &info, DictFuncPtr_t dict, Int_t pragmabits)
 Global function called by the ctor of a class's init class (see the ClassDef macro).
 
ROOT::TClassAltROOT::AddClassAlternate (const char *normName, const char *alternate)
 Global function called by GenerateInitInstance.
 
void ROOT::Class_ShowMembers (TClass *cl, const void *obj, TMemberInspector &)
 Indirect call to the implementation of ShowMember allowing [forward] declaration with out a full definition of the TClass class.
 
TClassROOT::CreateClass (const char *cname, Version_t id, const std::type_info &info, TVirtualIsAProxy *isa, const char *dfil, const char *ifil, Int_t dl, Int_t il)
 Global function called by a class' static Dictionary() method (see the ClassDef macro).
 
void ROOT::Internal::DefaultStreamer (TBuffer &R__b, const TClass *cl, void *objpointer)
 Default streamer implementation used by ClassDefInline to avoid requirement to include TBuffer.h.
 
const TInitBehaviorROOT::Internal::DefineBehavior (void *, void *)
 
Bool_t ROOT::Internal::HasConsistentHashMember (const char *clName)
 Return true is the Hash/RecursiveRemove setup is consistent, i.e.
 
Bool_t ROOT::Internal::HasConsistentHashMember (TClass &clRef)
 Return true is the Hash/RecursiveRemove setup is consistent, i.e.
 
template<class Tmpl >
TBufferoperator<< (TBuffer &buf, const Tmpl *obj)
 
template<class Tmpl >
TBufferoperator>> (TBuffer &buf, Tmpl *&obj)
 
TNamedROOT::RegisterClassTemplate (const char *name, const char *file, Int_t line)
 Global function to register the implementation file and line of a class template (i.e.
 
void ROOT::RemoveClass (const char *cname, TClass *cl)
 Global function called by the dtor of a class's init class (see the ClassDef macro).
 
void ROOT::RemoveClassAlternate (ROOT::TClassAlt *)
 
void ROOT::ResetClassVersion (TClass *, const char *, Short_t)
 Global function to update the version number.
 
template<class RootClass >
Short_t ROOT::SetClassVersion (RootClass *)
 

Macro Definition Documentation

◆ _ClassDefBase_

#define _ClassDefBase_ ( name,
id,
virtual_keyword,
overrd )
Value:
private: \
static_assert(std::is_integral<decltype(id)>::value, \
"ClassDef(Inline) macro: the specified class version number is not an integer."); \
{ \
static std::atomic<UChar_t> recurseBlocker(0); \
return ::ROOT::Internal::THashConsistencyHolder<decltype(*this)>::fgHashConsistency; \
} else if (recurseBlocker == 1) { \
return false; \
} else if (recurseBlocker++ == 0) { \
::ROOT::Internal::THashConsistencyHolder<decltype(*this)>::fgHashConsistency = \
::ROOT::Internal::HasConsistentHashMember(_QUOTE_(name)) || \
::ROOT::Internal::HasConsistentHashMember(*IsA()); \
return ::ROOT::Internal::THashConsistencyHolder<decltype(*this)>::fgHashConsistency; \
} \
return false; /* unreachable */ \
} /** \endcond */ \
\
public: \
/** \return Version of this class */ static constexpr Version_t Class_Version() { return id; } \
/** \return TClass describing current object */ virtual_keyword TClass *IsA() const overrd \
{ return name::Class(); } \
/** \cond HIDDEN_SYMBOLS */ virtual_keyword void ShowMembers(TMemberInspector &insp) const overrd \
{ \
::ROOT::Class_ShowMembers(name::Class(), this, insp); \
} /** \endcond */ \
void StreamerNVirtual(TBuffer &ClassDef_StreamerNVirtual_b) { name::Streamer(ClassDef_StreamerNVirtual_b); } \
/** \return Name of the file containing the class declaration */ static const char *DeclFileName() { return __FILE__; }
#define R__likely(expr)
Definition RConfig.hxx:569
#define _QUOTE_(name)
Definition RConfig.hxx:422
bool Bool_t
Boolean (0=false, 1=true) (bool)
Definition RtypesCore.h:78
short Version_t
Class version identifier (short)
Definition RtypesCore.h:80
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
char name[80]
Definition TGX11.cxx:142
Buffer base class used for serializing objects.
Definition TBuffer.h:43
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:84
Abstract base class for accessing the data-members of a class.

Common part being called both by _ClassDefOutline_ and _ClassDefInline_.

Note
DeclFileLine() is not part of it, since Cling uses that as trigger for associating as class title the comment string found right after the macro.

Definition at line 277 of file Rtypes.h.

◆ _ClassDefInline_

#define _ClassDefInline_ ( name,
id,
virtual_keyword,
overrd )
Value:
/** \cond HIDDEN_SYMBOLS \deprecated */ static int ImplFileLine() { return -1; } /** \endcond */ \
/** \cond HIDDEN_SYMBOLS \deprecated */ static const char *ImplFileName() { return nullptr; } /** \endcond */\
/** \return Name of this class */ static const char *Class_Name() \
{ \
return ::ROOT::Internal::ClassDefGenerateInitInstanceLocalInjector<name>::Name(); \
} \
/** \cond HIDDEN_SYMBOLS */ static TClass *Dictionary() \
{ \
return ::ROOT::Internal::ClassDefGenerateInitInstanceLocalInjector<name>::Dictionary(); \
} /** \endcond */ \
/** \return TClass describing this class */ static TClass *Class() \
{ \
return ::ROOT::Internal::ClassDefGenerateInitInstanceLocalInjector<name>::Class(); \
} \
virtual_keyword void Streamer(TBuffer &R__b) overrd \
{ \
::ROOT::Internal::DefaultStreamer(R__b, name::Class(), this); \
}
#define _ClassDefBase_(name, id, virtual_keyword, overrd)
Common part being called both by _ClassDefOutline_ and _ClassDefInline_.
Definition Rtypes.h:277
const char * Class
Definition TXMLSetup.cxx:63

Definition at line 322 of file Rtypes.h.

◆ _ClassDefOutline_

#define _ClassDefOutline_ ( name,
id,
virtual_keyword,
overrd )
Value:
private: \
/** \cond HIDDEN_SYMBOLS \brief Pointer holding the address of the TClass describing this class */ \
static atomic_TClass_ptr fgIsA; /** \endcond */ \
public: \
/** \cond HIDDEN_SYMBOLS \deprecated */ static int ImplFileLine(); /** \endcond */ \
/** \cond HIDDEN_SYMBOLS \deprecated */ static const char *ImplFileName(); /** \endcond */ \
/** \return Name of this class */ static const char *Class_Name(); \
/** \cond HIDDEN_SYMBOLS */ static TClass *Dictionary(); /** \endcond */ \
/** \return TClass describing this class */ static TClass *Class(); \
virtual_keyword void Streamer(TBuffer&) overrd;
std::atomic< TClass * > atomic_TClass_ptr
Definition Rtypes.h:201

Definition at line 309 of file Rtypes.h.

◆ BIT

#define BIT ( n)    (1ULL << (n))

Definition at line 90 of file Rtypes.h.

◆ ClassDef

#define ClassDef ( name,
id )
Value:
_ClassDefOutline_(name,id,virtual,) \
/** \cond HIDDEN_SYMBOLS */ static int DeclFileLine() { return __LINE__; } /** \endcond */
#define _ClassDefOutline_(name, id, virtual_keyword, overrd)
Definition Rtypes.h:309

Definition at line 343 of file Rtypes.h.

◆ ClassDef2T2

#define ClassDef2T2 ( name,
Tmpl1,
Tmpl2 )

Definition at line 413 of file Rtypes.h.

◆ ClassDef3T2

#define ClassDef3T2 ( name,
Tmpl1,
Tmpl2,
Tmpl3 )

Definition at line 422 of file Rtypes.h.

◆ ClassDefInline

#define ClassDefInline ( name,
id )
Value:
_ClassDefInline_(name,id,virtual,) \
/** \cond HIDDEN_SYMBOLS */ static int DeclFileLine() { return __LINE__; } /** \endcond */
#define _ClassDefInline_(name, id, virtual_keyword, overrd)
Definition Rtypes.h:322

Definition at line 355 of file Rtypes.h.

◆ ClassDefInlineNV

#define ClassDefInlineNV ( name,
id )
Value:
/** \cond HIDDEN_SYMBOLS */ static int DeclFileLine() { return __LINE__; } /** \endcond */

Definition at line 363 of file Rtypes.h.

◆ ClassDefInlineOverride

#define ClassDefInlineOverride ( name,
id )
Value:
_ClassDefInline_(name,id,,override) \
/** \cond HIDDEN_SYMBOLS */ static int DeclFileLine() { return __LINE__; } /** \endcond */

Definition at line 359 of file Rtypes.h.

◆ ClassDefNV

#define ClassDefNV ( name,
id )
Value:
/** \cond HIDDEN_SYMBOLS */ static int DeclFileLine() { return __LINE__; } /** \endcond */

Definition at line 351 of file Rtypes.h.

◆ ClassDefOverride

#define ClassDefOverride ( name,
id )
Value:
_ClassDefOutline_(name,id,,override) \
/** \cond HIDDEN_SYMBOLS */ static int DeclFileLine() { return __LINE__; } /** \endcond */

Definition at line 347 of file Rtypes.h.

◆ ClassDefT

#define ClassDefT ( name,
id )
Value:
_ClassDefOutline_(name,id,virtual,) \
/** \cond HIDDEN_SYMBOLS */ static int DeclFileLine() { return __LINE__; } /** \endcond */

This ClassDefT is strictly redundant and is kept only for backward compatibility.

Deprecated

Definition at line 391 of file Rtypes.h.

◆ ClassDefT2

#define ClassDefT2 ( name,
Tmpl )

Definition at line 400 of file Rtypes.h.

◆ ClassDefTNV

#define ClassDefTNV ( name,
id )
Value:
_ClassDefOutline_(name,id,virtual,) \
/** \cond HIDDEN_SYMBOLS */ static int DeclFileLine() { return __LINE__; } /** \endcond */

Definition at line 395 of file Rtypes.h.

◆ ClassImp

#define ClassImp ( name)    ClassImpUnique(name,default)
Deprecated

Definition at line 375 of file Rtypes.h.

◆ ClassImp2T

#define ClassImp2T ( name,
Tmpl1,
Tmpl2 )   templateClassImp(name)

Definition at line 414 of file Rtypes.h.

◆ ClassImp3T

#define ClassImp3T ( name,
Tmpl1,
Tmpl2,
Tmpl3 )   templateClassImp(name)

Definition at line 423 of file Rtypes.h.

◆ ClassImpT

#define ClassImpT ( name,
Tmpl )   templateClassImp(name)

Definition at line 406 of file Rtypes.h.

◆ ClassImpUnique

#define ClassImpUnique ( name,
key )

Definition at line 372 of file Rtypes.h.

◆ CLRBIT

#define CLRBIT ( n,
i )   ((n) &= ~BIT(i))

Definition at line 92 of file Rtypes.h.

◆ NamespaceImp

#define NamespaceImp ( name)    NamespaceImpUnique(name,default)

Definition at line 380 of file Rtypes.h.

◆ NamespaceImpUnique

#define NamespaceImpUnique ( name,
key )

Macro for Namespace.

Definition at line 378 of file Rtypes.h.

◆ R__ADD_INCLUDE_PATH

#define R__ADD_INCLUDE_PATH ( PATH)

Definition at line 474 of file Rtypes.h.

◆ R__ADD_LIBRARY_PATH

#define R__ADD_LIBRARY_PATH ( PATH)

Definition at line 475 of file Rtypes.h.

◆ R__CLING_PTRCHECK

#define R__CLING_PTRCHECK ( ONOFF)

Definition at line 482 of file Rtypes.h.

◆ R__LOAD_LIBRARY

#define R__LOAD_LIBRARY ( LIBRARY)

Definition at line 473 of file Rtypes.h.

◆ R__UseDummy

#define R__UseDummy ( name)     class _NAME2_(name,_c) { public: _NAME2_(name,_c)() { if (name) { } } }

Definition at line 369 of file Rtypes.h.

◆ RootClassVersion

#define RootClassVersion ( name,
VersionNumber )
Value:
namespace ROOT { /** \cond HIDDEN_SYMBOLS */ \
TGenericClassInfo *GenerateInitInstance(const name*); /** \endcond */ \
/** \cond HIDDEN_SYMBOLS */ \
/** \endcond */ \
}
#define _R__UNIQUE_(X)
Definition RConfig.hxx:432
short Short_t
Signed Short integer 2 bytes (short)
Definition RtypesCore.h:54

Definition at line 428 of file Rtypes.h.

◆ RootStreamer

#define RootStreamer ( name,
STREAMER )
Value:
namespace ROOT { \
/** \cond HIDDEN_SYMBOLS */ \
TGenericClassInfo *GenerateInitInstance(const name*); /** \endcond */ \
/** \cond HIDDEN_SYMBOLS */ \
GenerateInitInstance((name*)0x0)->SetStreamer(STREAMER); \
/** \endcond */ \
}

Definition at line 438 of file Rtypes.h.

◆ SETBIT

#define SETBIT ( n,
i )   ((n) |= BIT(i))

Definition at line 91 of file Rtypes.h.

◆ templateClassImp

#define templateClassImp ( name)    templateClassImpUnique(name,default)

Definition at line 404 of file Rtypes.h.

◆ templateClassImpUnique

#define templateClassImpUnique ( name,
key )

Definition at line 402 of file Rtypes.h.

◆ TESTBIT

#define TESTBIT ( n,
i )   ((Bool_t)(((n) & BIT(i)) != 0))

Definition at line 93 of file Rtypes.h.

Typedef Documentation

◆ atomic_TClass_ptr

Definition at line 201 of file Rtypes.h.

◆ ClassConvStreamerFunc_t

typedef void(* ClassConvStreamerFunc_t) (TBuffer &, void *, const TClass *)

Definition at line 78 of file Rtypes.h.

◆ ClassStreamerFunc_t

typedef void(* ClassStreamerFunc_t) (TBuffer &, void *)

Definition at line 77 of file Rtypes.h.

◆ DictFuncPtr_t

typedef TClass *(* DictFuncPtr_t) ()

Definition at line 85 of file Rtypes.h.

◆ IsAGlobalFunc_t

typedef TClass *(* IsAGlobalFunc_t) (const TClass *, const void *obj)

Definition at line 101 of file Rtypes.h.

◆ MemberStreamerFunc_t

typedef void(* MemberStreamerFunc_t) (TBuffer &, void *, Int_t)

Definition at line 79 of file Rtypes.h.

◆ ShowMembersFunc_t

typedef void(* ShowMembersFunc_t) (const void *obj, TMemberInspector &R__insp, Bool_t isTransient)

Definition at line 99 of file Rtypes.h.

◆ VoidFuncPtr_t

typedef void(* VoidFuncPtr_t) ()

Definition at line 84 of file Rtypes.h.

Enumeration Type Documentation

◆ EColor

Enumerator
kWhite 
kBlack 
kGray 
kRed 
kGreen 
kBlue 
kYellow 
kMagenta 
kCyan 
kOrange 
kSpring 
kTeal 
kAzure 
kViolet 
kPink 
kGrape 
kBrown 
kAsh 
kP6Blue 
kP6Yellow 
kP6Red 
kP6Grape 
kP6Gray 
kP6Violet 
kP8Blue 
kP8Orange 
kP8Red 
kP8Pink 
kP8Green 
kP8Cyan 
kP8Azure 
kP8Gray 
kP10Blue 
kP10Yellow 
kP10Red 
kP10Gray 
kP10Violet 
kP10Brown 
kP10Orange 
kP10Green 
kP10Ash 
kP10Cyan 

Definition at line 65 of file Rtypes.h.

◆ ESysConstants

Enumerator
kMAXSIGNALS 
kMAXPATHLEN 
kBUFFERSIZE 
kItimerResolution 

interval-timer resolution in ms (used for TThread, TTimer, Emit, Connect, etc.)

Definition at line 58 of file Rtypes.h.

Function Documentation

◆ operator<<()

template<class Tmpl >
TBuffer & operator<< ( TBuffer & buf,
const Tmpl * obj )

Definition at line 397 of file TBuffer.h.

◆ operator>>()

template<class Tmpl >
TBuffer & operator>> ( TBuffer & buf,
Tmpl *& obj )

Definition at line 381 of file TBuffer.h.