205   if (t && t[0] != 
'!')
 
  211         if (strcmp(
name, 
"unsigned char") != 0 &&
 
  212             strncmp(
name, 
"unsigned short", 
sizeof (
"unsigned short")) != 0 &&
 
  213             strcmp(
name, 
"unsigned int") != 0 &&
 
  214             strncmp(
name, 
"unsigned long", 
sizeof (
"unsigned long")) != 0)
 
  240   if (strstr(
GetTitle(), 
"*OPTION={")) {
 
  248         TIter iEnumConst(enumDict->GetConstants());
 
  252                                     enumConst->GetName(),enumConst->GetName());
 
  275  fInfo(
gCling->DataMemberInfo_FactoryCopy(dm.fInfo)),
 
  277  fDataType(dm.fDataType),
 
  279  fSTLCont(dm.fSTLCont),
 
  280  fProperty(dm.fProperty),
 
  281  fArrayDim(dm.fArrayDim),
 
  282  fArrayMaxIndex( dm.fArrayDim ? new 
Int_t[dm.fArrayDim] : nullptr),
 
  283  fArrayIndex(dm.fArrayIndex),
 
  285  fFullTypeName(dm.fFullTypeName),
 
  286  fTrueTypeName(dm.fTrueTypeName),
 
  287  fValueGetter(nullptr),
 
  288  fValueSetter(nullptr),
 
  289  fOptions(dm.fOptions ? (
TList*)dm.fOptions->Clone() : nullptr)
 
  400      if (dim < 0 || dim >= 
fArrayDim) 
return -1;
 
  456      char *rdmc = (
char*)rdm->
GetName();
 
  459      if (this->
IsaPointer() && rdmc[0] == 
'*') rdmc++;
 
  462      if (strcmp(rdmc,
GetName()) == 0) {
 
  507   if ( cl) 
return cl->
Size();
 
  564         DataMemberInfo_t *info
 
  572      return newId != 
nullptr;
 
  574   return fInfo != 
nullptr;
 
  611   const char *optTitle = strstr(
GetTitle(), 
"*OPTION={");
 
  628   const char *
ptr1 = 
nullptr;
 
  629   char *
ptr2    = 
nullptr;
 
  630   char *ptr3    = 
nullptr;
 
  637   char *opt_ptr = strstr(cmt, 
"*OPTION={");
 
  643   ptr1 = R__STRTOK_R(opt_ptr, 
"{}", &rest); 
 
  644   if (
ptr1 == 
nullptr) {
 
  645      Fatal(
"TDataMember",
"Internal error, found \"*OPTION={\" but not \"{}\" in %s.",
GetTitle());
 
  648   ptr1 = R__STRTOK_R(
nullptr, 
"{}", &rest); 
 
  649   if (
ptr1 == 
nullptr) {
 
  650      Fatal(
"TDataMember",
"Internal error, found \"*OPTION={\" but not \"{}\" in %s.",
GetTitle());
 
  655   strlcpy(opt,
ptr1,2048);
 
  661   std::vector<std::string> tokens;           
 
  666      ptr1 = R__STRTOK_R((
char *)(cnt++ ? 
nullptr : opt), 
";", &rest);
 
  668         tokens.emplace_back(
ptr1);
 
  674   for (i=0;i<token_cnt;i++) {
 
  675      if (strstr(tokens[i].c_str(),
"GetMethod")) {
 
  676         ptr1 = R__STRTOK_R(
const_cast<char *
>(tokens[i].c_str()), 
"\"", &rest); 
 
  677         if (
ptr1 == 
nullptr) {
 
  678            Fatal(
"TDataMember",
"Internal error, found \"GetMethod\" but not \"\\\"\" in %s.",
GetTitle());
 
  681         ptr1 = R__STRTOK_R(
nullptr, 
"\"", &rest); 
 
  682         if (
ptr1 == 
nullptr) {
 
  683            Fatal(
"TDataMember",
"Internal error, found \"GetMethod\" but not \"\\\"\" in %s.",
GetTitle());
 
  694      if (strstr(tokens[i].c_str(),
"SetMethod")) {
 
  695         ptr1 = R__STRTOK_R(
const_cast<char *
>(tokens[i].c_str()), 
"\"", &rest);
 
  696         if (
ptr1 == 
nullptr) {
 
  697            Fatal(
"TDataMember",
"Internal error, found \"SetMethod\" but not \"\\\"\" in %s.",
GetTitle());
 
  700         ptr1 = R__STRTOK_R(
nullptr, 
"\"", &rest); 
 
  701         if (
ptr1 == 
nullptr) {
 
  702            Fatal(
"TDataMember",
"Internal error, found \"SetMethod\" but not \"\\\"\" in %s.",
GetTitle());
 
  714   std::unique_ptr<TList> optionlist{
new TList()};       
 
  716   for (i=0;i<token_cnt;i++) {
 
  717      if (strstr(tokens[i].c_str(),
"Items")) {
 
  718         ptr1 = R__STRTOK_R(
const_cast<char *
>(tokens[i].c_str()), 
"()", &rest);
 
  719         if (
ptr1 == 
nullptr) {
 
  720            Fatal(
"TDataMember",
"Internal error, found \"Items\" but not \"()\" in %s.",
GetTitle());
 
  723         ptr1 = R__STRTOK_R(
nullptr, 
"()", &rest);
 
  724         if (
ptr1 == 
nullptr) {
 
  725            Fatal(
"TDataMember",
"Internal error, found \"Items\" but not \"()\" in %s.",
GetTitle());
 
  730         strlcpy(opts,
ptr1,2048);
 
  738            ptr1 = R__STRTOK_R(opt_cnt++ ? 
nullptr : opts, 
",", &rest); 
 
  753   TIter next(optionlist.get());                
 
  761      ptr2 = R__STRTOK_R((
char *)
ptr1, 
"=\"", &rest); 
 
  762      ptr3 = R__STRTOK_R(
nullptr, 
"=\"", &rest);            
 
  771         bool isnumber = (strtolResult != 
ptr1);
 
  786               Fatal(
"TDataMember", 
"Internal error, couldn't recognize enum/global value %s.", 
ptr1);
 
  794      optionlist->Remove(it);         
 
  838         const char *dataname = 
GetName();
 
  841         gettername.
Form( 
"Get%s", dataname+1);
 
  842         if (
GetClass()->GetMethod(gettername, 
""))
 
  844         gettername.
Form( 
"Is%s", dataname+1);
 
  845         if (
GetClass()->GetMethod(gettername, 
""))
 
  847         gettername.
Form( 
"Has%s", dataname+1);
 
  848         if (
GetClass()->GetMethod(gettername, 
""))
 
  884         const char *dataname = 
GetName();
 
  887         settername.
Form( 
"Set%s", dataname+1);
 
  888         if (strstr(settername, 
"Is")) settername.
Form( 
"Set%s", dataname+3);
 
  889         if (
GetClass()->GetMethod(settername, 
"1"))
 
  892            if (
GetClass()->GetMethod(settername, 
"true"))
 
  918   if (info == 
nullptr) {
 
  943      b.ReadClassBuffer(
Class(), 
this);
 
  959      b.WriteClassBuffer(
Class(), 
this);
 
  967                 Long_t tglmask,
const char *
name, 
const char *label)
 
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
 
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 prop
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
R__EXTERN TVirtualMutex * gInterpreterMutex
 
R__EXTERN TInterpreter * gCling
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
#define R__LOCKGUARD(mutex)
 
Buffer base class used for serializing objects.
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
void BuildRealData(void *pointer=nullptr, Bool_t isTransient=kFALSE)
Build a full list of persistent data members.
 
TList * GetListOfDataMembers(Bool_t load=kTRUE)
Return list containing the TDataMembers of a class.
 
Short_t GetDeclFileLine() const
 
TList * GetListOfRealData() const
 
Int_t Size() const
Return size of object of this class.
 
ClassInfo_t * GetClassInfo() const
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
TObject * Clone(const char *newname="") const override
Make a clone of an collection using the Streamer facility.
 
All ROOT classes may have RTTI (run time type identification) support added.
 
virtual ~TDataMember()
TDataMember dtor deletes adopted CINT DataMemberInfo object.
 
Int_t GetMaxIndex(Int_t dim) const
Return maximum index for array dimension "dim".
 
TDataMember(const TDataMember &)
copy constructor
 
void Streamer(TBuffer &) override
Stream an object of TDataMember.
 
TMethodCall * SetterMethod(TClass *cl)
Return a TMethodCall method responsible for setting the value of data member.
 
virtual bool Update(DataMemberInfo_t *info)
Update the TFunction to reflect the new info.
 
TDataMember & operator=(const TDataMember &)
assignment operator
 
const char * GetTrueTypeName() const
Get full type description of data member, e,g.: "class TDirectory*".
 
Longptr_t GetOffsetCint() const
Get offset from "this" using the information in CINT only.
 
Long_t Property() const override
Get property description word. For meaning of bits see EProperty.
 
TMethodCall * fValueGetter
 
Int_t GetArrayDim() const
Return number of array dimensions.
 
Longptr_t fOffset
pointer to data basic type descriptor
 
Bool_t IsEnum() const
Return true if data member is an enum.
 
TList * GetOptions()
Returns list of options - list of TOptionListItems.
 
void Init(bool afterReading)
Routines called by the constructor and Update to reset the member's information.
 
Int_t GetUnitSize() const
Get the sizeof the underlying type of the data member (i.e.
 
Bool_t IsBasic() const
Return true if data member is a basic type, e.g. char, int, long...
 
Int_t IsSTLContainer()
The return type is defined in TDictionary (kVector, kList, etc.)
 
Bool_t IsaPointer() const
Return true if data member is a pointer.
 
Bool_t IsValid()
Return true if this data member object is pointing to a currently loaded data member.
 
TMethodCall * GetterMethod(TClass *cl=nullptr)
Return a TMethodCall method responsible for getting the value of data member.
 
TClass * fClass
pointer to CINT data member info
 
void ExtractOptionsFromComment()
Build TOptionListItems from the member comment *OPTION={
 
TDataType * GetDataType() const
 
Longptr_t GetOffset() const
Get offset from "this".
 
const char * GetTypeName() const
Get type of data member, e,g.: "class TDirectory*" -> "TDirectory".
 
DeclId_t GetDeclId() const
 
TMethodCall * fValueSetter
method that returns a value;
 
TList * fOptions
method which sets value;
 
const char * GetArrayIndex() const
If the data member is pointer and has a valid array size in its comments GetArrayIndex returns a stri...
 
TDataType * fDataType
pointer to the class
 
const char * GetFullTypeName() const
Get full type description of data member, e,g.: "class TDirectory*".
 
TClass * GetClass() const
 
Int_t Size() const
Get size of basic typedef'ed type.
 
This class defines an abstract interface that must be implemented by all classes that contain diction...
 
Bool_t UpdateInterpreterStateMarker()
the Cling ID of the transaction that last updated the object
 
TDictionary & operator=(const TDictionary &other)
 
The TEnumConstant class implements the constants of the enum type.
 
The TEnum class implements the enum type.
 
static TEnum * GetEnum(const std::type_info &ti, ESearchAction sa=kALoadAndInterpLookup)
 
Global variables class (global variables are obtained from CINT).
 
virtual void * GetAddress() const
Return address of global.
 
virtual DataMemberInfo_t * DataMemberInfo_FactoryCopy(DataMemberInfo_t *) const
 
virtual const char * DataMemberInfo_Name(DataMemberInfo_t *) const
 
virtual const char * DataMemberInfo_TypeName(DataMemberInfo_t *) const
 
virtual const char * DataMemberInfo_ValidArrayIndex(DataMemberInfo_t *) const
 
virtual Longptr_t DataMemberInfo_Offset(DataMemberInfo_t *) const
 
virtual Bool_t DataMemberInfo_IsValid(DataMemberInfo_t *) const
 
virtual Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t *) const
 
virtual Long_t DataMemberInfo_Property(DataMemberInfo_t *) const
 
virtual int DataMemberInfo_ArrayDim(DataMemberInfo_t *) const
 
virtual void DataMemberInfo_Delete(DataMemberInfo_t *) const
 
virtual int DataMemberInfo_MaxIndex(DataMemberInfo_t *, Int_t) const
 
virtual const char * DataMemberInfo_Title(DataMemberInfo_t *) const
 
virtual const char * DataMemberInfo_TypeTrueName(DataMemberInfo_t *) const
 
virtual const char * TypeName(const char *s)=0
 
A collection of TDataMember objects designed for fast access given a DeclId_t and for keep track of T...
 
void Update(TDictionary *member)
Move the member or data member to the expect set of list.
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
void Add(TObject *obj) override
 
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
 
Method or function calling interface.
 
const char * GetMethodName() const
 
const char * GetParams() const
 
const char * GetName() const override
Returns name of object.
 
const char * GetTitle() const override
Returns title of object.
 
Mother of all ROOT objects.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
 
TDataMember * fDataMember
 
Long_t fValue
Data member to which this option belongs.
 
The TRealData class manages the effective list of all data members for a given class.
 
const char * GetName() const override
Returns name of object.
 
TDataMember * GetDataMember() const
 
Long_t GetThisOffset() const
 
void Clear()
Clear string without changing its capacity.
 
const char * Data() const
 
TString & Append(const char *cs)
 
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
 
std::string GetLong64_Name(const char *original)
Replace 'long long' and 'unsigned long long' by 'Long64_t' and 'ULong64_t'.
 
ROOT::ESTLType UnderlyingIsSTLCont(std::string_view type)
Return the type of STL collection, if any, that is the underlying type of the given type.