Logo ROOT   6.15/01
Reference Guide
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
Rtypes.h File Reference
#include "RtypesCore.h"
#include "DllImport.h"
#include "snprintf.h"
#include "strlcpy.h"
#include <atomic>
#include <stdio.h>
#include <string.h>
#include <typeinfo>
#include "TGenericClassInfo.h"
#include "TIsAProxy.h"
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

 ROOT
 Namespace for new ROOT classes and functions.
 
 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 _R_PragmaStr(x)   _Pragma(#x)
 
#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__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 = 15, 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). More...
 
void ROOT::AddClassAlternate (const char *normName, const char *alternate)
 Global function called by GenerateInitInstance. More...
 
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. More...
 
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). More...
 
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. More...
 
const TInitBehavior * ROOT::Internal::DefineBehavior (void *, void *)
 
Bool_t ROOT::Internal::HasConsistentHashMember (TClass &clRef)
 Return true is the Hash/RecursiveRemove setup is consistent, i.e. More...
 
Bool_t ROOT::Internal::HasConsistentHashMember (const char *clName)
 Return true is the Hash/RecursiveRemove setup is consistent, i.e. More...
 
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. More...
 
void ROOT::RemoveClass (const char *cname)
 Global function called by the dtor of a class's init class (see the ClassImp macro). More...
 
void ROOT::ResetClassVersion (TClass *, const char *, Short_t)
 Global function to update the version number. More...
 
template<class RootClass >
Short_t ROOT::SetClassVersion (RootClass *)
 

Variables

R__EXTERN Int_t gDebug
 

Macro Definition Documentation

◆ _ClassDefBase_

#define _ClassDefBase_ (   name,
  id,
  virtual_keyword,
  overrd 
)
Value:
private: \
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) { \
++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 \
{ \
} \
void StreamerNVirtual(TBuffer &ClassDef_StreamerNVirtual_b) { name::Streamer(ClassDef_StreamerNVirtual_b); } \
static const char *DeclFileName() { return __FILE__; }
short Version_t
Definition: RtypesCore.h:61
Buffer base class used for serializing objects.
Definition: TBuffer.h:40
bool Bool_t
Definition: RtypesCore.h:59
Abstract base class for accessing the data-members of a class.
void Class()
Definition: Class.C:29
#define R__likely(expr)
Definition: RConfig.h:579
XFontStruct * id
Definition: TGX11.cxx:108
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
#define _QUOTE_(name)
Definition: RConfig.h:447
Bool_t HasConsistentHashMember(const char *clName)
Return true is the Hash/RecursiveRemove setup is consistent, i.e.
Definition: TClass.cxx:6986
char name[80]
Definition: TGX11.cxx:109
void Class_ShowMembers(TClass *cl, const void *obj, TMemberInspector &)
Indirect call to the implementation of ShowMember allowing [forward] declaration with out a full defi...
Definition: TClass.cxx:496

Definition at line 265 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() \
{ \
} \
static TClass *Dictionary() \
{ \
return ::ROOT::Internal::ClassDefGenerateInitInstanceLocalInjector<name>::Dictionary(); \
} \
virtual_keyword void Streamer(TBuffer &R__b) overrd { ::ROOT::Internal::DefaultStreamer(R__b, name::Class(), this); }
Buffer base class used for serializing objects.
Definition: TBuffer.h:40
const char * Name
Definition: TXMLSetup.cxx:66
void Class()
Definition: Class.C:29
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
#define _ClassDefBase_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:265
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:28
char name[80]
Definition: TGX11.cxx:109

Definition at line 306 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;
Buffer base class used for serializing objects.
Definition: TBuffer.h:40
void Class()
Definition: Class.C:29
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
std::atomic< TClass * > atomic_TClass_ptr
Definition: Rtypes.h:190
#define _ClassDefBase_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:265
char name[80]
Definition: TGX11.cxx:109

Definition at line 294 of file Rtypes.h.

◆ _R_PragmaStr

#define _R_PragmaStr (   x)    _Pragma(#x)

Definition at line 452 of file Rtypes.h.

◆ BIT

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

Definition at line 78 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:294
char name[80]
Definition: TGX11.cxx:109

Definition at line 320 of file Rtypes.h.

◆ ClassDef2T2

#define ClassDef2T2 (   name,
  Tmpl1,
  Tmpl2 
)

Definition at line 412 of file Rtypes.h.

◆ ClassDef3T2

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

Definition at line 421 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:306
char name[80]
Definition: TGX11.cxx:109

Definition at line 332 of file Rtypes.h.

◆ ClassDefInlineNV

#define ClassDefInlineNV (   name,
  id 
)
Value:
static int DeclFileLine() { return __LINE__; }
#define _ClassDefInline_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:306
char name[80]
Definition: TGX11.cxx:109

Definition at line 340 of file Rtypes.h.

◆ ClassDefInlineOverride

#define ClassDefInlineOverride (   name,
  id 
)
Value:
_ClassDefInline_(name,id,,override) \
static int DeclFileLine() { return __LINE__; }
#define _ClassDefInline_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:306
char name[80]
Definition: TGX11.cxx:109

Definition at line 336 of file Rtypes.h.

◆ ClassDefNV

#define ClassDefNV (   name,
  id 
)
Value:
static int DeclFileLine() { return __LINE__; }
#define _ClassDefOutline_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:294
char name[80]
Definition: TGX11.cxx:109

Definition at line 328 of file Rtypes.h.

◆ ClassDefOverride

#define ClassDefOverride (   name,
  id 
)
Value:
_ClassDefOutline_(name,id,,override) \
static int DeclFileLine() { return __LINE__; }
#define _ClassDefOutline_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:294
char name[80]
Definition: TGX11.cxx:109

Definition at line 324 of file Rtypes.h.

◆ ClassDefT

#define ClassDefT (   name,
  id 
)
Value:
_ClassDefOutline_(name,id,virtual,) \
static int DeclFileLine() { return __LINE__; }
#define _ClassDefOutline_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:294
char name[80]
Definition: TGX11.cxx:109

Definition at line 386 of file Rtypes.h.

◆ ClassDefT2

#define ClassDefT2 (   name,
  Tmpl 
)

Definition at line 395 of file Rtypes.h.

◆ ClassDefTNV

#define ClassDefTNV (   name,
  id 
)
Value:
_ClassDefOutline_(name,id,virtual,) \
static int DeclFileLine() { return __LINE__; }
#define _ClassDefOutline_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:294
char name[80]
Definition: TGX11.cxx:109

Definition at line 390 of file Rtypes.h.

◆ ClassImp

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

Definition at line 359 of file Rtypes.h.

◆ ClassImp2T

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

Definition at line 413 of file Rtypes.h.

◆ ClassImp3T

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

Definition at line 422 of file Rtypes.h.

◆ ClassImpT

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

Definition at line 405 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))); \
} \
}
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
#define _R__UNIQUE_(X)
Definition: RConfig.h:456
#define _NAME2_(name1, name2)
Definition: RConfig.h:444
char name[80]
Definition: TGX11.cxx:109

Definition at line 350 of file Rtypes.h.

◆ CLRBIT

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

Definition at line 80 of file Rtypes.h.

◆ NamespaceImp

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

Definition at line 374 of file Rtypes.h.

◆ NamespaceImpUnique

#define NamespaceImpUnique (   name,
  key 
)
Value:
namespace name { \
namespace ROOT { \
::ROOT::TGenericClassInfo *GenerateInitInstance(); \
namespace { \
static int _R__UNIQUE_(_NAME2_(R__dummyint,key)) = \
GenerateInitInstance()->SetImplFile(__FILE__, __LINE__); \
R__UseDummy(_R__UNIQUE_(_NAME2_(R__dummyint,key))); \
} \
} \
}
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
#define _R__UNIQUE_(X)
Definition: RConfig.h:456
#define _NAME2_(name1, name2)
Definition: RConfig.h:444
char name[80]
Definition: TGX11.cxx:109

Definition at line 363 of file Rtypes.h.

◆ R__ADD_INCLUDE_PATH

#define R__ADD_INCLUDE_PATH (   PATH)

Definition at line 471 of file Rtypes.h.

◆ R__ADD_LIBRARY_PATH

#define R__ADD_LIBRARY_PATH (   PATH)

Definition at line 472 of file Rtypes.h.

◆ R__LOAD_LIBRARY

#define R__LOAD_LIBRARY (   LIBRARY)

Definition at line 470 of file Rtypes.h.

◆ R__UseDummy

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

Definition at line 346 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)); \
}
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
#define _R__UNIQUE_(X)
Definition: RConfig.h:456
short Short_t
Definition: RtypesCore.h:35
char name[80]
Definition: TGX11.cxx:109

Definition at line 427 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)); \
}
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
#define _R__UNIQUE_(X)
Definition: RConfig.h:456
short Short_t
Definition: RtypesCore.h:35
char name[80]
Definition: TGX11.cxx:109

Definition at line 435 of file Rtypes.h.

◆ SETBIT

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

Definition at line 79 of file Rtypes.h.

◆ templateClassImp

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

Definition at line 403 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))); \
}
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
#define _R__UNIQUE_(X)
Definition: RConfig.h:456
#define _NAME2_(name1, name2)
Definition: RConfig.h:444
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
#define _QUOTE_(name)
Definition: RConfig.h:447
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.e.
char name[80]
Definition: TGX11.cxx:109

Definition at line 397 of file Rtypes.h.

◆ TESTBIT

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

Definition at line 81 of file Rtypes.h.

Typedef Documentation

◆ atomic_TClass_ptr

typedef std::atomic<TClass*> atomic_TClass_ptr

Definition at line 190 of file Rtypes.h.

◆ ClassConvStreamerFunc_t

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

Definition at line 66 of file Rtypes.h.

◆ ClassStreamerFunc_t

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

Definition at line 65 of file Rtypes.h.

◆ DictFuncPtr_t

typedef TClass*(* DictFuncPtr_t) ()

Definition at line 73 of file Rtypes.h.

◆ IsAGlobalFunc_t

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

Definition at line 93 of file Rtypes.h.

◆ MemberStreamerFunc_t

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

Definition at line 67 of file Rtypes.h.

◆ ShowMembersFunc_t

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

Definition at line 91 of file Rtypes.h.

◆ VoidFuncPtr_t

typedef void(* VoidFuncPtr_t) ()

Definition at line 72 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 58 of file Rtypes.h.

◆ ESysConstants

Enumerator
kMAXSIGNALS 
kMAXPATHLEN 
kBUFFERSIZE 
kItimerResolution 

Definition at line 51 of file Rtypes.h.

Function Documentation

◆ operator<<()

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

Definition at line 394 of file TBuffer.h.

◆ operator>>()

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

Definition at line 378 of file TBuffer.h.

Variable Documentation

◆ gDebug

R__EXTERN Int_t gDebug

Definition at line 86 of file Rtypes.h.