Logo ROOT   6.11/03
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
 
struct  ROOT::Internal::TTypeNameExtraction< T >
 
struct  ROOT::Internal::TTypeNameExtractionBase
 

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__TNE_PRETTY_FUNCTION   __PRETTY_FUNCTION__
 
#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

#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
XFontStruct * id
Definition: TGX11.cxx:108
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:72
#define R__likely(expr)
Definition: RConfig.h:554
Bool_t HasConsistentHashMember(const char *clName)
Return true is the Hash/RecursiveRemove setup is consistent, i.e.
Definition: TClass.cxx:6978
typedef void((*Func_t)())
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:514

Definition at line 287 of file Rtypes.h.

#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:67
void Class()
Definition: Class.C:29
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:72
#define _ClassDefBase_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:287
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 328 of file Rtypes.h.

#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:72
std::atomic< TClass * > atomic_TClass_ptr
Definition: Rtypes.h:190
#define _ClassDefBase_(name, id, virtual_keyword, overrd)
Definition: Rtypes.h:287
char name[80]
Definition: TGX11.cxx:109

Definition at line 316 of file Rtypes.h.

#define _R_PragmaStr (   x)    _Pragma(#x)

Definition at line 471 of file Rtypes.h.

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

Definition at line 78 of file Rtypes.h.

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

Definition at line 342 of file Rtypes.h.

#define ClassDef2T2 (   name,
  Tmpl1,
  Tmpl2 
)

Definition at line 434 of file Rtypes.h.

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

Definition at line 443 of file Rtypes.h.

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

Definition at line 354 of file Rtypes.h.

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

Definition at line 362 of file Rtypes.h.

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

Definition at line 358 of file Rtypes.h.

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

Definition at line 350 of file Rtypes.h.

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

Definition at line 346 of file Rtypes.h.

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

Definition at line 408 of file Rtypes.h.

#define ClassDefT2 (   name,
  Tmpl 
)

Definition at line 417 of file Rtypes.h.

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

Definition at line 412 of file Rtypes.h.

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

Definition at line 381 of file Rtypes.h.

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

Definition at line 435 of file Rtypes.h.

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

Definition at line 444 of file Rtypes.h.

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

Definition at line 427 of file Rtypes.h.

#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 _R__UNIQUE_(X)
Definition: RConfig.h:454
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
#define R__UseDummy(name)
Definition: Rtypes.h:368
#define _NAME2_(name1, name2)
Definition: RConfig.h:442
char name[80]
Definition: TGX11.cxx:109

Definition at line 372 of file Rtypes.h.

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

Definition at line 80 of file Rtypes.h.

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

Definition at line 396 of file Rtypes.h.

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

Definition at line 385 of file Rtypes.h.

#define R__ADD_INCLUDE_PATH (   PATH)

Definition at line 489 of file Rtypes.h.

#define R__ADD_LIBRARY_PATH (   PATH)

Definition at line 490 of file Rtypes.h.

#define R__LOAD_LIBRARY (   LIBRARY)

Definition at line 488 of file Rtypes.h.

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

Definition at line 368 of file Rtypes.h.

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

Definition at line 449 of file Rtypes.h.

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

Definition at line 457 of file Rtypes.h.

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

Definition at line 79 of file Rtypes.h.

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

Definition at line 425 of file Rtypes.h.

#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))); \
}
#define _R__UNIQUE_(X)
Definition: RConfig.h:454
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
#define _QUOTE_(name)
Definition: RConfig.h:445
#define R__UseDummy(name)
Definition: Rtypes.h:368
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
#define _NAME2_(name1, name2)
Definition: RConfig.h:442
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 419 of file Rtypes.h.

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

Definition at line 81 of file Rtypes.h.

Typedef Documentation

typedef std::atomic<TClass*> atomic_TClass_ptr

Definition at line 190 of file Rtypes.h.

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

Definition at line 66 of file Rtypes.h.

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

Definition at line 65 of file Rtypes.h.

typedef TClass*(* DictFuncPtr_t) ()

Definition at line 73 of file Rtypes.h.

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

Definition at line 93 of file Rtypes.h.

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

Definition at line 67 of file Rtypes.h.

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

Definition at line 91 of file Rtypes.h.

typedef void(* VoidFuncPtr_t) ()

Definition at line 72 of file Rtypes.h.

Enumeration Type Documentation

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.

Enumerator
kMAXSIGNALS 
kMAXPATHLEN 
kBUFFERSIZE 
kItimerResolution 

Definition at line 51 of file Rtypes.h.

Function Documentation

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

Definition at line 392 of file TBuffer.h.

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

Definition at line 376 of file TBuffer.h.

Variable Documentation

R__EXTERN Int_t gDebug

Definition at line 86 of file Rtypes.h.