#ifndef _rooClass_h #define _rooClass_h #ifndef _rooType_h #include "rooType.h" #endif #ifndef _rooScope_h #include "rooScope.h" #endif // // ROOT wrappers around ActiveSchema classes ( see ooas.h ) // //////////////////////////////////////////////////////////////////////////////// class rooClass : public rooType, public rooScope { private: rooAttribute* fAttribute; // resolve_attribute() rooRelationship* fRelationship; // resolve_relationship() rooClass* fNextShape; // next_shape() rooClass* fPrevShape; // prev_shape() rooClass* fLatestVersion; // latest_version() rooClassPosition* fPosition; // position_in_class() rooMetaObject* fMetaObject; // resolve() public: rooClass(); virtual ~rooClass(); rooClass(void* imp) { setImp(imp); } rooInheritanceItr sub_class_list_begin(); rooInheritanceItr sub_class_list_end(); rooInheritanceItr base_class_list_begin(); rooInheritanceItr base_class_list_end(); rooAttributeItr defines_attribute_begin(); rooAttributeItr defines_attribute_end(); rooRelationshipItr defines_relationship_begin(); rooRelationshipItr defines_relationship_end(); const rooAttribute & resolve_attribute(const TString&); const rooRelationship & resolve_relationship(const TString&); Bool_t persistent_capable() const; Bool_t has_extent() const; virtual operator size_t() const; virtual UInt_t id() const; virtual Int_t type_number() const; virtual const rooMetaObject & resolve(const TString&, Int_t ver = kooLatestVersion); virtual rooMetaObjectItr defines_begin(); virtual rooMetaObjectItr defines_end(); rooAttributePlusInheritedItr attributes_plus_inherited_begin(); rooAttributePlusInheritedItr attributes_plus_inherited_end(); rooBaseClassPlusInheritedItr base_classes_plus_inherited_begin(); rooBaseClassPlusInheritedItr base_classes_plus_inherited_end(); const rooAttribute & attribute_at_position(const rooClassPosition &); const rooAttribute & attribute_at_position(Int_t); const rooAttribute & attribute_with_id(UInt_t); Int_t number_of_attributes() const; const rooClassPosition position_in_class(const TString&); const rooClassPosition position_in_class(const rooAttribute &); virtual Bool_t is_class() const { return kTRUE; } virtual Bool_t is_string_type() const; Bool_t is_internal() const; Bool_t is_deleted() const; Bool_t has_base_class(const TString&) const; Bool_t has_virtual_table() const; Int_t shape_number() const; const rooClass & next_shape(); const rooClass & previous_shape(); Int_t version_number() const; const rooClass & latest_version(); static void enable_root_descent(); static void disable_root_descent(); static Bool_t root_descent_is_enabled(); ClassDef(rooClass,0) // corresponds to d_Class }; #endif //