ROOT logo
ROOT » CINT » REFLEX » Reflex::ClassBuilderImpl

class Reflex::ClassBuilderImpl

 Register an on demand builder with this class.

Function Members (Methods)

public:
virtual~ClassBuilderImpl()
voidAddBase(const Reflex::Type& bas, Reflex::OffsetFunction offsFP, unsigned int modifiers = 0)
voidAddDataMember(const char* nam, const Reflex::Type& typ, size_t offs, unsigned int modifiers = 0)
voidAddEnum(const char* nam, const char* values, const type_info* ti, unsigned int modifiers = 0)
voidAddFunctionMember(const char* nam, const Reflex::Type& typ, Reflex::StubFunction stubFP, void* stubCtx = 0, const char* params = 0, unsigned int modifiers = 0)
voidAddOnDemandDataMemberBuilder(Reflex::OnDemandBuilderForScope* odb)
voidAddOnDemandFunctionMemberBuilder(Reflex::OnDemandBuilderForScope* odb)
voidAddProperty(const char* key, Reflex::Any value)
voidAddProperty(const char* key, const char* value)
voidAddProperty(const char* key, const Reflex::Literal& value)
voidAddTypedef(const Reflex::Type& typ, const char* def)
Reflex::ClassBuilderImplClassBuilderImpl(Reflex::Class* cl)
Reflex::ClassBuilderImplClassBuilderImpl(const Reflex::ClassBuilderImpl&)
Reflex::ClassBuilderImplClassBuilderImpl(const char* nam, const type_info& ti, size_t size, unsigned int modifiers = 0, Reflex::TYPE typ = CLASS)
Reflex::ClassBuilderImpl&operator=(const Reflex::ClassBuilderImpl&)
voidSetSizeOf(size_t size)
Reflex::TypeToType()
protected:
voidEnableCallback(bool enable = true)

Data Members

private:
boolfCallbackEnabled
Reflex::Class*fClass
Reflex::MemberfLastMember
boolfNewClass

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

ClassBuilderImpl(const char* nam, const type_info& ti, size_t size, unsigned int modifiers = 0, Reflex::TYPE typ = CLASS)
 constructor 
ClassBuilderImpl(Class* cl)
virtual ~ClassBuilderImpl()
 destructor 
void AddBase(const Reflex::Type& bas, Reflex::OffsetFunction offsFP, unsigned int modifiers = 0)
    * AddBase will add the information about one BaseAt class
    * @param  Name of the BaseAt class
    * @param  OffsetFP function pointer for Offset calculation
    * @param  modifiers the modifiers of the class

void AddFunctionMember(const char* nam, const Reflex::Type& typ, Reflex::StubFunction stubFP, void* stubCtx = 0, const char* params = 0, unsigned int modifiers = 0)
 AddDataMember will add the information about one data
    * MemberAt of the class
    *
    * @param  Name of the data MemberAt
    * @param  At of the data MemberAt
    * @param  Offset of the data MemberAt
    * @param  modifiers the modifiers of the data MemberAt

 AddFunctionMember will add the information about one
    * function MemberAt of the class
    *
    * @param  Name of the function MemberAt
    * @param  At of the function MemberAt
    * @param  stubFP Stub function pointer for the function
    * @param  stubCxt Stub user context for the stub function
    * @param  params parameter names and default values (semi-colon separated)
    * @param  modifiers the modifiers of the function MemberAt

void AddEnum(const char* nam, const char* values, const type_info* ti, unsigned int modifiers = 0)
 This is for anonymous union support.
void addUnion(const char* nam, const char* values, const std::type_info& ti, unsigned int modifiers = 0);
 AddProperty will add a PropertyNth to the PropertyNth stack
    * which will be emtpied with the next call of a builder
    * class and attached to the item built with this call
    *
    * @param  key the PropertyNth key
    * @param  value the value of the PropertyNth

void AddProperty(const char* key, const char* value)
{ AddProperty(key, (const char*)value); }
void AddOnDemandDataMemberBuilder(Reflex::OnDemandBuilderForScope* odb)
    * Register an on demand builder for data members with this class.

void AddOnDemandFunctionMemberBuilder(Reflex::OnDemandBuilderForScope* odb)
    * Register an on demand builder for function members with this class.

void SetSizeOf(size_t size)
 SetSizeOf will set the SizeOf property for this class.
    * It currently ignore all actual content.
    * @size Size of the class

Type ToType()
    * ToType will return the currently produced Type (class)
    * @return the type currently being built

void EnableCallback(bool enable = true)
    * EnableCallback Enable or disable the callback call in the destructor
    * @param  enable true to enable callback call, false to disable callback call

template <class T> ClassBuilder& AddDataMember(const char* nam, size_t offs, unsigned int modifiers = 0)
 AddDataMember will add the information about one data
    * MemberAt of the class
    *
    * @param  Name of the data MemberAt
    * @param  Offset of data MemberAt
    * @param  modifiers the modifiers of the data MemberAt
    * @return a reference to the ClassBuilder

template <typename TD> ClassBuilder& AddTypedef(const char* def)
template <typename P> ClassBuilder& AddProperty(const char* key, P value)
 This is for anonymous union support.
ClassBuilder& addUnion(const char* nam, const char* values, unsigned int modifiers);
 AddProperty will add a PropertyNth to the last defined
    * data MemberAt, method or class.
    * @param  key the PropertyNth key
    * @param  value the value of the PropertyNth
    * @return a reference to the building class

ClassBuilderT& AddProperty(const char* key, P value)
ClassBuilderT & addUnion( const char * nam,
                          const char * values,
                          unsigned int modifiers );
 AddProperty will add a PropertyNth to the last defined
    * data MemberAt, method or class.
    * @param  key the PropertyNth key
    * @param  value the value of the PropertyNth
    * @return a reference to the building class