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: