ROOT class for writing object.  
 More...
#include <JRootClass.hh>
 | 
| static bool  | is_class (const char *const name) | 
|   | Check name of class against ROOT classes.  
  | 
|   | 
| static bool  | is_class (const TBaseClass &base_class) | 
|   | Check base class against ROOT class names.  
  | 
|   | 
| static bool  | is_class (const TDataMember &data_member) | 
|   | Check data member against ROOT class names.  
  | 
|   | 
| static bool  | is_STLcontainer (const TBaseClass &base_class) | 
|   | Check if base class is STL container.  
  | 
|   | 
| static bool  | is_STLcontainer (const TDataMember &data_member) | 
|   | Check if data member is STL container.  
  | 
|   | 
| static bool  | is_STLstring (const TDataMember &data_member) | 
|   | Check if data member is STL string.  
  | 
|   | 
| static bool  | is_static (const TDataMember &data_member) | 
|   | Check if data member is static.  
  | 
|   | 
| static bool  | is_tobject_member (const char *name) | 
|   | Check if name is one of TObject own data members (fBits or fUniqueID, for Root <= 6.30.04 at least)  
  | 
|   | 
 | 
| void  | print (std::ostream &out, const std::string &prefix) const | 
|   | Print ROOT class information.  
  | 
|   | 
 | 
| static void  | print (std::ostream &out, const std::string &name, const std::string &type) | 
|   | Print ROOT class information.  
  | 
|   | 
 | 
| TDictionary *  | dictionary | 
|   | pointer to ROOT dictionary  
  | 
|   | 
| int  | offset | 
|   | offset with respect to data structure [B]  
  | 
|   | 
ROOT class for writing object. 
Definition at line 602 of file JRootClass.hh.
 
◆ JAddress_t
◆ pointer_type
◆ JRootWritableClass() [1/2]
template<class T > 
  
  
      
        
          | JROOT::JRootWritableClass::JRootWritableClass  | 
          ( | 
          const T & |           object | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Constructor. 
- Parameters
 - 
  
  
 
Definition at line 611 of file JRootClass.hh.
  611                                        :
  612      JRootAddressableClass<const char *>(object)
  613    {}
 
 
 
◆ JRootWritableClass() [2/2]
Copy constructor. 
- Parameters
 - 
  
  
 
Definition at line 621 of file JRootClass.hh.
  621                                                                      :
  622      JRootAddressableClass<const char *>(rc)
  623    {}
 
 
 
◆ operator const T &()
template<class T > 
  
  
      
        
          | JROOT::JRootWritableClass::operator const T &  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Type conversion operator. 
- Returns
 - value 
 
Definition at line 632 of file JRootClass.hh.
  633    {
  636      } else {
  637        THROW(JCastException, 
"JRootWritableClass::operator const T&");
 
  638      }
  639    }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
pointer_type getAddress() const
 
JRootClass()
Default constructor.
 
 
 
 
◆ getAddress()
Get address. 
- Returns
 - pointer to object 
 
Definition at line 460 of file JRootClass.hh.
  461    {
  463    }
int getOffset() const
Get offset of this class with respect to parent class.
 
 
 
 
◆ is_valid()
Check validity of this addressable class. 
- Returns
 - true if valid addressable class; else false 
 
Definition at line 471 of file JRootClass.hh.
  472    {
  474    }
bool is_valid() const
Check validity of this class.
 
 
 
 
◆ find() [1/2]
Find addressable base class or data member with given name within current class. 
- Parameters
 - 
  
    | name | name of base class or data member  | 
  
   
- Returns
 - ROOT addressable class 
 
Definition at line 483 of file JRootClass.hh.
  484    {
  486    }
JRootAddressableClass(T &object)
 
JRootClass find(const char *const name, const bool option=true) const
Find base class or data member with given name within current class.
 
 
 
 
◆ find() [2/2]
  
  
      
        
          | JRootClass JROOT::JRootClass::find  | 
          ( | 
          const char *const |           name,  | 
         
        
           | 
           | 
          const bool |           option = true ) const | 
         
       
   | 
  
inlineinherited   | 
  
 
Find base class or data member with given name within current class. 
- Parameters
 - 
  
    | name | name of base class or data member  | 
    | option | case sensitivity  | 
  
   
- Returns
 - ROOT class 
 
Definition at line 246 of file JRootClass.hh.
  247    {
  248      if (name != NULL && strlen(name) != 0) {
  249 
  251          return *this;
  252        }
  253 
  255 
  256          
  257          
  258          for (std::unique_ptr<TIterator> i(this->
getClass()->GetListOfDataMembers(kFALSE)->MakeIterator()); 
const TDataMember* p = (
const TDataMember*) i->Next(); ) {
 
  259            if (( option  &&  strcmp    (p->GetName(), name) == 0) ||
  260                (!option  &&  strcasecmp(p->GetName(), name) == 0)) { 
  261              return this->
get(*p);
 
  262            }
  263          }
  264          
  265          
  266          
  267          for (std::unique_ptr<TIterator> i(this->
getClass()->GetListOfBases()->MakeIterator()); TBaseClass* p = (TBaseClass*) i->Next(); ) {
 
  268            
  270              
  272 
  273              rcs = rcs.find(name);
  274              
  275              if (rcs.is_valid()) {
  276                return rcs;
  277              }
  278            }
  279          }
  280        }
  281      }
  282 
  284    }
const char * getTypename() const
Get type name.
 
JRootClass get(const TDataMember &data_member) const
Get ROOT class of given data member.
 
static bool is_STLcontainer(const TBaseClass &base_class)
Check if base class is STL container.
 
TClass * getClass() const
Get class.
 
static bool is_class(const char *const name)
Check name of class against ROOT classes.
 
 
 
 
◆ get() [1/2]
Get addressable class of given data member. 
- Parameters
 - 
  
  
 
- Returns
 - ROOT addressable class 
 
Definition at line 495 of file JRootClass.hh.
 
 
◆ get() [2/2]
Get addressable class of given base class. 
- Parameters
 - 
  
  
 
- Returns
 - ROOT addressable class 
 
Definition at line 507 of file JRootClass.hh.
 
 
◆ operator[]()
Find addressable base class or data member with given name within current class. 
- Parameters
 - 
  
    | name | name of base class or data member  | 
  
   
- Returns
 - ROOT addressable class 
 
Definition at line 519 of file JRootClass.hh.
  520    {
  521      return this->
find(name);
 
  522    }
JRootAddressableClass find(const char *const name) const
 
 
 
 
◆ is_class() [1/3]
  
  
      
        
          | static bool JROOT::JRootClass::is_class  | 
          ( | 
          const char *const |           name | ) | 
           | 
         
       
   | 
  
inlinestaticinherited   | 
  
 
Check name of class against ROOT classes. 
- Parameters
 - 
  
  
 
- Returns
 - true if name of class corresponds to genuine class; else false 
 
Definition at line 50 of file JRootClass.hh.
   51    {
   52      return (name                                      != NULL  &&
   53              strcmp(name, TClass ::Class()->GetName()) != 0     &&
   54              strcmp(name, TObject::Class()->GetName()) != 0     &&
   55              strcmp(name, "_Rb_tree_node_base")        != 0     &&
   56              strcmp(name, "fgIsA")                     != 0     &&
   57              strcmp(name, "atomic<TClass*>")           != 0);
   58    }
 
 
 
◆ is_class() [2/3]
  
  
      
        
          | static bool JROOT::JRootClass::is_class  | 
          ( | 
          const TBaseClass & |           base_class | ) | 
           | 
         
       
   | 
  
inlinestaticinherited   | 
  
 
Check base class against ROOT class names. 
- Parameters
 - 
  
  
 
- Returns
 - true if valid class name; else false 
 
Definition at line 67 of file JRootClass.hh.
   68    {
   69      return is_class(base_class.GetName());
 
   70    }
 
 
 
◆ is_class() [3/3]
  
  
      
        
          | static bool JROOT::JRootClass::is_class  | 
          ( | 
          const TDataMember & |           data_member | ) | 
           | 
         
       
   | 
  
inlinestaticinherited   | 
  
 
Check data member against ROOT class names. 
- Parameters
 - 
  
  
 
- Returns
 - true if valid class name; else false 
 
Definition at line 79 of file JRootClass.hh.
   80    {
   81      return is_class(data_member.GetTypeName());
 
   82    }
 
 
 
◆ is_STLcontainer() [1/2]
  
  
      
        
          | static bool JROOT::JRootClass::is_STLcontainer  | 
          ( | 
          const TBaseClass & |           base_class | ) | 
           | 
         
       
   | 
  
inlinestaticinherited   | 
  
 
Check if base class is STL container. 
- Parameters
 - 
  
  
 
- Returns
 - true if STL congtainer; else false 
 
Definition at line 91 of file JRootClass.hh.
   92    {
   93      return (const_cast<TBaseClass&>(base_class).IsSTLContainer() != ROOT::kNotSTL);
   94    }
 
 
 
◆ is_STLcontainer() [2/2]
  
  
      
        
          | static bool JROOT::JRootClass::is_STLcontainer  | 
          ( | 
          const TDataMember & |           data_member | ) | 
           | 
         
       
   | 
  
inlinestaticinherited   | 
  
 
Check if data member is STL container. 
- Parameters
 - 
  
  
 
- Returns
 - true if STL congtainer; else false 
 
Definition at line 103 of file JRootClass.hh.
  104    {
  105      return (const_cast<TDataMember&>(data_member).IsSTLContainer() != ROOT::kNotSTL);
  106    }
 
 
 
◆ is_STLstring()
  
  
      
        
          | static bool JROOT::JRootClass::is_STLstring  | 
          ( | 
          const TDataMember & |           data_member | ) | 
           | 
         
       
   | 
  
inlinestaticinherited   | 
  
 
Check if data member is STL string. 
- Parameters
 - 
  
  
 
- Returns
 - true if STL string; else false 
 
Definition at line 115 of file JRootClass.hh.
  116    {
  117      return (strcmp(data_member.GetFullTypeName(), "string")       == 0 ||
  118              strcmp(data_member.GetFullTypeName(), "const string") == 0);
  119    }
 
 
 
◆ is_static()
  
  
      
        
          | static bool JROOT::JRootClass::is_static  | 
          ( | 
          const TDataMember & |           data_member | ) | 
           | 
         
       
   | 
  
inlinestaticinherited   | 
  
 
Check if data member is static. 
- Parameters
 - 
  
  
 
- Returns
 - true if static; else false 
 
Definition at line 128 of file JRootClass.hh.
  129    {
  130      return (data_member.Property() & kIsStatic);
  131    }
 
 
 
◆ is_tobject_member()
  
  
      
        
          | static bool JROOT::JRootClass::is_tobject_member  | 
          ( | 
          const char * |           name | ) | 
           | 
         
       
   | 
  
inlinestaticinherited   | 
  
 
Check if name is one of TObject own data members (fBits or fUniqueID, for Root <= 6.30.04 at least) 
Definition at line 138 of file JRootClass.hh.
  139    {
  140      TClass* o_class = TClass::GetClass<TObject>();
  141      return o_class->GetListOfRealData()->FindObject(name) != nullptr;
  142    }
 
 
 
◆ getDictionary()
  
  
      
        
          | TDictionary * JROOT::JRootClass::getDictionary  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlineinherited   | 
  
 
Get dictionary. 
- Returns
 - pointer to dictionary 
 
Definition at line 172 of file JRootClass.hh.
  173    {
  175    }
TDictionary * dictionary
pointer to ROOT dictionary
 
 
 
 
◆ getOffset()
  
  
      
        
          | int JROOT::JRootClass::getOffset  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlineinherited   | 
  
 
Get offset of this class with respect to parent class. 
- Returns
 - offset 
 
Definition at line 183 of file JRootClass.hh.
  184    {
  186    }
int offset
offset with respect to data structure [B]
 
 
 
 
◆ getClass()
  
  
      
        
          | TClass * JROOT::JRootClass::getClass  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlineinherited   | 
  
 
Get class. 
- Returns
 - pointer to class 
 
Definition at line 194 of file JRootClass.hh.
 
 
◆ getTypename()
  
  
      
        
          | const char * JROOT::JRootClass::getTypename  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlineinherited   | 
  
 
Get type name. 
- Returns
 - type name 
 
Definition at line 205 of file JRootClass.hh.
  206    {
  209      else
  210        return NULL;
  211    }
 
 
 
◆ equals()
  
  
      
        
          | bool JROOT::JRootClass::equals  | 
          ( | 
          const JRootClass & |           object | ) | 
           const | 
         
       
   | 
  
inlineinherited   | 
  
 
Test equality of ROOT classes. 
- Parameters
 - 
  
  
 
- Returns
 - true if both ROOT classes are same type; else false 
 
Definition at line 231 of file JRootClass.hh.
 
 
◆ print() [1/3]
  
  
      
        
          | void JROOT::JRootClass::print  | 
          ( | 
          std::ostream & |           out | ) | 
           const | 
         
       
   | 
  
inlineinherited   | 
  
 
Print ROOT class information. 
- Parameters
 - 
  
  
 
Definition at line 318 of file JRootClass.hh.
  319    {
  321    }
void print(std::ostream &out) const
Print ROOT class information.
 
 
 
 
◆ print() [2/3]
  
  
      
        
          | void JROOT::JRootClass::print  | 
          ( | 
          std::ostream & |           out,  | 
         
        
           | 
           | 
          const std::string & |           prefix ) const | 
         
       
   | 
  
inlineprotectedinherited   | 
  
 
Print ROOT class information. 
- Parameters
 - 
  
    | out | output stream  | 
    | prefix | prefix  | 
  
   
Definition at line 358 of file JRootClass.hh.
  359    {
  361 
  363 
  365 
  366          if (this->
getClass()->GetListOfBases() != NULL) {
 
  367          
  368            for (std::unique_ptr<TIterator> i(this->
getClass()->GetListOfBases()->MakeIterator()); 
const TBaseClass* p = (
const TBaseClass*) i->Next(); ) {
 
  370                this->
get(*p).
print(out, prefix + 
"::" + p->GetName());
 
  371              else
  372                print(out, prefix + 
"::" + p->GetName(), this->get(*p).getTypename());
 
  373            }
  374          }
  375          
  376          if (this->
getClass()->GetListOfDataMembers(kFALSE) != NULL) {
 
  377            
  378            for (std::unique_ptr<TIterator> i(this->
getClass()->GetListOfDataMembers(kFALSE)->MakeIterator()); 
const TDataMember* p = (
const TDataMember*) i->Next(); ) {
 
  381              else
  382                print(out, prefix + (
is_static(*p) ?  
"::" : 
".") + p->GetName(), this->get(*p).getTypename());
 
  383            }
  384          }
  385        }
  386      }
  387    }
static bool is_static(const TDataMember &data_member)
Check if data member is static.
 
static bool is_STLstring(const TDataMember &data_member)
Check if data member is STL string.
 
 
 
 
◆ print() [3/3]
  
  
      
        
          | static void JROOT::JRootClass::print  | 
          ( | 
          std::ostream & |           out,  | 
         
        
           | 
           | 
          const std::string & |           name,  | 
         
        
           | 
           | 
          const std::string & |           type ) | 
         
       
   | 
  
inlinestaticprotectedinherited   | 
  
 
Print ROOT class information. 
- Parameters
 - 
  
    | out | output stream  | 
    | name | name  | 
    | type | type  | 
  
   
Definition at line 397 of file JRootClass.hh.
  398    {
  400 
  401      out << name << "  " << '(' << type << ')' << endl;
  402    }
 
 
 
◆ dictionary
  
  
      
        
          | TDictionary* JROOT::JRootClass::dictionary | 
         
       
   | 
  
protectedinherited   | 
  
 
 
◆ offset
  
  
      
        
          | int JROOT::JRootClass::offset | 
         
       
   | 
  
protectedinherited   | 
  
 
offset with respect to data structure [B] 
Definition at line 327 of file JRootClass.hh.
 
 
◆ address
The documentation for this struct was generated from the following file: