Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
Rtypes.h File Reference
#include "RtypesCore.h"
#include <cstdio>
#include "strtok.h"
#include "strlcpy.h"
#include "snprintf.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
 tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tbb::task_arena without forward declaring tbb::interface7
 
namespace  ROOT::Internal
 

Macros

#define _ClassDefBase_(name, id, virtual_keyword, overrd)
 
#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)
 
#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)
 
#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(* 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
}
 
enum  ESysConstants { kMAXSIGNALS = 16 , kMAXPATHLEN = 8192 , kBUFFERSIZE = 8192 , kItimerResolution = 10 }
 

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 ClassImp macro).
 
void ROOT::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)
 Global function called by the dtor of a class's init class (see the ClassImp macro).
 
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."); \
virtual_keyword Bool_t CheckTObjectHashConsistency() const overrd \
{ \
static std::atomic<UChar_t> recurseBlocker(0); \
if (R__likely(recurseBlocker >= 2)) { \
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()); \
++recurseBlocker; \
return ::ROOT::Internal::THashConsistencyHolder<decltype(*this)>::fgHashConsistency; \
} \
return false; /* unreacheable */ \
} \
\
public: \
static Version_t Class_Version() { return id; } \
virtual_keyword TClass *IsA() const overrd { return name::Class(); } \
virtual_keyword void ShowMembers(TMemberInspector &insp) const overrd \
{ \
::ROOT::Class_ShowMembers(name::Class(), this, insp); \
} \
void StreamerNVirtual(TBuffer &ClassDef_StreamerNVirtual_b) { name::Streamer(ClassDef_StreamerNVirtual_b); } \
static const char *DeclFileName() { return __FILE__; }
#define R__likely(expr)
Definition RConfig.hxx:599
#define _QUOTE_(name)
Definition RConfig.hxx:460
short Version_t
Definition RtypesCore.h:65
bool Bool_t
Definition RtypesCore.h:63
XFontStruct * id
Definition TGX11.cxx:109
char name[80]
Definition TGX11.cxx:110
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:80
Abstract base class for accessing the data-members of a class.

Definition at line 269 of file Rtypes.h.

◆ _ClassDefInline_

#define _ClassDefInline_ (   name,
  id,
  virtual_keyword,
  overrd 
)
Value:
_ClassDefBase_(name, id, virtual_keyword, overrd) public : static int ImplFileLine() { return -1; } \
static const char *ImplFileName() { return 0; } \
static const char *Class_Name() \
{ \
return ::ROOT::Internal::ClassDefGenerateInitInstanceLocalInjector<name>::Name(); \
} \
static TClass *Dictionary() \
{ \
return ::ROOT::Internal::ClassDefGenerateInitInstanceLocalInjector<name>::Dictionary(); \
} \
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); }
void Class()
Definition Class.C:29
#define _ClassDefBase_(name, id, virtual_keyword, overrd)
Definition Rtypes.h:269
void DefaultStreamer(TBuffer &R__b, const TClass *cl, void *objpointer)
Default streamer implementation used by ClassDefInline to avoid requirement to include TBuffer....
Definition TBuffer.cxx:30

Definition at line 311 of file Rtypes.h.

◆ _ClassDefOutline_

#define _ClassDefOutline_ (   name,
  id,
  virtual_keyword,
  overrd 
)
Value:
_ClassDefBase_(name,id, virtual_keyword, overrd) \
private: \
static atomic_TClass_ptr fgIsA; \
public: \
static int ImplFileLine(); \
static const char *ImplFileName(); \
static const char *Class_Name(); \
static TClass *Dictionary(); \
static TClass *Class(); \
virtual_keyword void Streamer(TBuffer&) overrd;
std::atomic< TClass * > atomic_TClass_ptr
Definition Rtypes.h:193

Definition at line 299 of file Rtypes.h.

◆ BIT

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

Definition at line 85 of file Rtypes.h.

◆ ClassDef

#define ClassDef (   name,
  id 
)
Value:
_ClassDefOutline_(name,id,virtual,) \
static int DeclFileLine() { return __LINE__; }
#define _ClassDefOutline_(name, id, virtual_keyword, overrd)
Definition Rtypes.h:299

Definition at line 325 of file Rtypes.h.

◆ ClassDef2T2

#define ClassDef2T2 (   name,
  Tmpl1,
  Tmpl2 
)

Definition at line 417 of file Rtypes.h.

◆ ClassDef3T2

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

Definition at line 426 of file Rtypes.h.

◆ ClassDefInline

#define ClassDefInline (   name,
  id 
)
Value:
_ClassDefInline_(name,id,virtual,) \
static int DeclFileLine() { return __LINE__; }
#define _ClassDefInline_(name, id, virtual_keyword, overrd)
Definition Rtypes.h:311

Definition at line 337 of file Rtypes.h.

◆ ClassDefInlineNV

#define ClassDefInlineNV (   name,
  id 
)
Value:
static int DeclFileLine() { return __LINE__; }

Definition at line 345 of file Rtypes.h.

◆ ClassDefInlineOverride

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

Definition at line 341 of file Rtypes.h.

◆ ClassDefNV

#define ClassDefNV (   name,
  id 
)
Value:
static int DeclFileLine() { return __LINE__; }

Definition at line 333 of file Rtypes.h.

◆ ClassDefOverride

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

Definition at line 329 of file Rtypes.h.

◆ ClassDefT

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

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,) \
static int DeclFileLine() { return __LINE__; }

Definition at line 395 of file Rtypes.h.

◆ ClassImp

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

Definition at line 364 of file Rtypes.h.

◆ ClassImp2T

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

Definition at line 418 of file Rtypes.h.

◆ ClassImp3T

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

Definition at line 427 of file Rtypes.h.

◆ ClassImpT

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

Definition at line 410 of file Rtypes.h.

◆ ClassImpUnique

#define ClassImpUnique (   name,
  key 
)
Value:
namespace ROOT { \
TGenericClassInfo *GenerateInitInstance(const name*); \
namespace { \
static int _R__UNIQUE_(_NAME2_(R__dummyint,key)) __attribute__((unused)) = \
GenerateInitInstance((name*)0x0)->SetImplFile(__FILE__, __LINE__); \
R__UseDummy(_R__UNIQUE_(_NAME2_(R__dummyint,key))); \
} \
}
#define _NAME2_(name1, name2)
Definition RConfig.hxx:457
#define _R__UNIQUE_(X)
Definition RConfig.hxx:469
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...

Definition at line 355 of file Rtypes.h.

◆ CLRBIT

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

Definition at line 87 of file Rtypes.h.

◆ NamespaceImp

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

Definition at line 379 of file Rtypes.h.

◆ NamespaceImpUnique

#define NamespaceImpUnique (   name,
  key 
)
Value:
namespace name { \
namespace ROOTDict { \
::ROOT::TGenericClassInfo *GenerateInitInstance(); \
namespace { \
static int _R__UNIQUE_(_NAME2_(R__dummyint,key)) = \
GenerateInitInstance()->SetImplFile(__FILE__, __LINE__); \
R__UseDummy(_R__UNIQUE_(_NAME2_(R__dummyint,key))); \
} \
} \
}

Definition at line 368 of file Rtypes.h.

◆ R__ADD_INCLUDE_PATH

#define R__ADD_INCLUDE_PATH (   PATH)

Definition at line 473 of file Rtypes.h.

◆ R__ADD_LIBRARY_PATH

#define R__ADD_LIBRARY_PATH (   PATH)

Definition at line 474 of file Rtypes.h.

◆ R__CLING_PTRCHECK

#define R__CLING_PTRCHECK (   ONOFF)

Definition at line 481 of file Rtypes.h.

◆ R__LOAD_LIBRARY

#define R__LOAD_LIBRARY (   LIBRARY)

Definition at line 472 of file Rtypes.h.

◆ R__UseDummy

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

Definition at line 351 of file Rtypes.h.

◆ RootClassVersion

#define RootClassVersion (   name,
  VersionNumber 
)
Value:
namespace ROOT { \
TGenericClassInfo *GenerateInitInstance(const name*); \
static Short_t _R__UNIQUE_(R__dummyVersionNumber) = \
GenerateInitInstance((name*)0x0)->SetVersion(VersionNumber); \
R__UseDummy(_R__UNIQUE_(R__dummyVersionNumber)); \
}
short Short_t
Definition RtypesCore.h:39

Definition at line 432 of file Rtypes.h.

◆ RootStreamer

#define RootStreamer (   name,
  STREAMER 
)
Value:
namespace ROOT { \
TGenericClassInfo *GenerateInitInstance(const name*); \
static Short_t _R__UNIQUE_(R__dummyStreamer) = \
GenerateInitInstance((name*)0x0)->SetStreamer(STREAMER); \
R__UseDummy(_R__UNIQUE_(R__dummyStreamer)); \
}

Definition at line 440 of file Rtypes.h.

◆ SETBIT

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

Definition at line 86 of file Rtypes.h.

◆ templateClassImp

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

Definition at line 408 of file Rtypes.h.

◆ templateClassImpUnique

#define templateClassImpUnique (   name,
  key 
)
Value:
namespace ROOT { \
static TNamed * \
_R__UNIQUE_(_NAME2_(R__dummyholder, key)) = ::ROOT::RegisterClassTemplate(_QUOTE_(name), __FILE__, __LINE__); \
R__UseDummy(_R__UNIQUE_(_NAME2_(R__dummyholder, key))); \
}
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
TNamed * RegisterClassTemplate(const char *name, const char *file, Int_t line)
Global function to register the implementation file and line of a class template (i....

Definition at line 402 of file Rtypes.h.

◆ TESTBIT

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

Definition at line 88 of file Rtypes.h.

Typedef Documentation

◆ atomic_TClass_ptr

typedef std::atomic<TClass*> atomic_TClass_ptr

Definition at line 193 of file Rtypes.h.

◆ ClassConvStreamerFunc_t

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

Definition at line 73 of file Rtypes.h.

◆ ClassStreamerFunc_t

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

Definition at line 72 of file Rtypes.h.

◆ DictFuncPtr_t

typedef TClass *(* DictFuncPtr_t) ()

Definition at line 80 of file Rtypes.h.

◆ IsAGlobalFunc_t

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

Definition at line 96 of file Rtypes.h.

◆ MemberStreamerFunc_t

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

Definition at line 74 of file Rtypes.h.

◆ ShowMembersFunc_t

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

Definition at line 94 of file Rtypes.h.

◆ VoidFuncPtr_t

typedef void(* VoidFuncPtr_t) ()

Definition at line 79 of file Rtypes.h.

Enumeration Type Documentation

◆ EColor

enum EColor
Enumerator
kWhite 
kBlack 
kGray 
kRed 
kGreen 
kBlue 
kYellow 
kMagenta 
kCyan 
kOrange 
kSpring 
kTeal 
kAzure 
kViolet 
kPink 

Definition at line 65 of file Rtypes.h.

◆ ESysConstants

Enumerator
kMAXSIGNALS 
kMAXPATHLEN 
kBUFFERSIZE 
kItimerResolution 

Definition at line 58 of file Rtypes.h.

Function Documentation

◆ operator<<()

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

Definition at line 399 of file TBuffer.h.

◆ operator>>()

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

Definition at line 383 of file TBuffer.h.