OpenSceneGraph 2.8.3
|
A Reflector is a proxy class that is used to create a new description of a given type. More...
Classes | |
struct | ConstPtrConstructor |
struct | PtrConstructor |
Public Types | |
typedef T | reflected_type |
typedef Reflector< T > | inherited |
Public Member Functions | |
virtual | ~Reflector () |
Virtual destructor. | |
Protected Member Functions | |
Reflector (const std::string &name, const std::string &ns, bool abstract=false) | |
Direct initialization constructor. | |
Reflector (const std::string &qname, bool abstract=false) | |
Direct initialization constructor. | |
Type * | getType () |
Returns the Type object being described. | |
void | addBaseType (const Type &type) |
Declares a new base type for the current type. | |
void | setComparator (const Comparator *cmp) |
Sets the comparator object for the current type. | |
PropertyInfo * | addProperty (PropertyInfo *pi) |
Adds a property description to the current type. | |
MethodInfo * | addMethod (MethodInfo *mi) |
Adds a method description to the current type. | |
MethodInfo * | addProtectedMethod (MethodInfo *mi) |
Adds a protected method description to the current type. | |
void | addEnumLabel (int v, const std::string &label, bool strip_namespace=true) |
Adds an enumeration label to the current type. | |
ConstructorInfo * | addConstructor (ConstructorInfo *ci) |
Adds a constructor description to the current type. | |
ConstructorInfo * | addProtectedConstructor (ConstructorInfo *ci) |
Adds a protected constructor description to the current type. | |
std::string | qualifyName (const std::string &name) const |
Returns a string containing the qualified version of 'name'. | |
CustomAttributeProvider * | addAttribute (const CustomAttribute *attrib) |
Adds a custom attribute to the type being described. | |
void | setReaderWriter (const ReaderWriter *rw) |
Sets the current type's ReaderWriter object. | |
void | setDeclaringFile (const std::string &file) const |
Sets the current type's declaring file. |
A Reflector is a proxy class that is used to create a new description of a given type.
If the type to be described is simple and doesn't require additional details such as properties and methods, it can be reflected by simply creating a global instance of one of the classes derived from Reflector, for example ValueReflector. Other types may need further information and therefore it could be necessary to create a new subclass of Reflector or extend one of the existing subclasses. The reflected type can be set by calling Reflector's protected methods.
NOTE: when you create a Reflector for type T, it will automatically create descriptions for types T*, const T*, T&, and const T&. You should NEVER create reflectors for pointer or reference types explicitly.
typedef Reflector<T> osgIntrospection::Reflector< T >::inherited |
typedef T osgIntrospection::Reflector< T >::reflected_type |
virtual osgIntrospection::Reflector< T >::~Reflector | ( | ) | [inline, virtual] |
Virtual destructor.
osgIntrospection::Reflector< T >::Reflector | ( | const std::string & | name, |
const std::string & | ns, | ||
bool | abstract = false |
||
) | [protected] |
Direct initialization constructor.
Parameter 'name' is the name of the type being reflected and 'ns' is its namespace.
osgIntrospection::Reflector< T >::Reflector | ( | const std::string & | qname, |
bool | abstract = false |
||
) | [protected] |
Direct initialization constructor.
Parameter 'qname' is the fully-qualified name of the type being reflected, i.e. containing both the namespace and the name (separated by "::").
CustomAttributeProvider * osgIntrospection::Reflector< T >::addAttribute | ( | const CustomAttribute * | attrib | ) | [protected] |
Adds a custom attribute to the type being described.
References osgIntrospection::CustomAttributeProvider::addAttribute().
void osgIntrospection::Reflector< T >::addBaseType | ( | const Type & | type | ) | [protected] |
Declares a new base type for the current type.
ConstructorInfo * osgIntrospection::Reflector< T >::addConstructor | ( | ConstructorInfo * | ci | ) | [protected] |
Adds a constructor description to the current type.
As soon as a constructor is added through this method, the automatically-generated default constructor is removed.
Referenced by osgIntrospection::AtomicValueReflector< T >::AtomicValueReflector(), osgIntrospection::EnumReflector< T >::EnumReflector(), osgIntrospection::StdListReflector< T, VT >::StdListReflector(), osgIntrospection::StdMapReflector< T, IT, VT >::StdMapReflector(), osgIntrospection::StdPairReflector< T, PT1, PT2 >::StdPairReflector(), osgIntrospection::StdSetReflector< T, VT >::StdSetReflector(), osgIntrospection::StdVectorReflector< T, VT >::StdVectorReflector(), and osgIntrospection::WAtomicValueReflector< T >::WAtomicValueReflector().
void osgIntrospection::Reflector< T >::addEnumLabel | ( | int | v, |
const std::string & | label, | ||
bool | strip_namespace = true |
||
) | [protected] |
Adds an enumeration label to the current type.
MethodInfo * osgIntrospection::Reflector< T >::addMethod | ( | MethodInfo * | mi | ) | [protected] |
Adds a method description to the current type.
References osgIntrospection::MethodInfo::overrides().
PropertyInfo * osgIntrospection::Reflector< T >::addProperty | ( | PropertyInfo * | pi | ) | [protected] |
Adds a property description to the current type.
Referenced by osgIntrospection::StdListReflector< T, VT >::StdListReflector(), osgIntrospection::StdMapReflector< T, IT, VT >::StdMapReflector(), osgIntrospection::StdPairReflector< T, PT1, PT2 >::StdPairReflector(), osgIntrospection::StdSetReflector< T, VT >::StdSetReflector(), and osgIntrospection::StdVectorReflector< T, VT >::StdVectorReflector().
ConstructorInfo * osgIntrospection::Reflector< T >::addProtectedConstructor | ( | ConstructorInfo * | ci | ) | [protected] |
Adds a protected constructor description to the current type.
MethodInfo * osgIntrospection::Reflector< T >::addProtectedMethod | ( | MethodInfo * | mi | ) | [protected] |
Adds a protected method description to the current type.
References osgIntrospection::MethodInfo::overrides().
Type* osgIntrospection::Reflector< T >::getType | ( | ) | [inline, protected] |
Returns the Type object being described.
std::string osgIntrospection::Reflector< T >::qualifyName | ( | const std::string & | name | ) | const [protected] |
Returns a string containing the qualified version of 'name'.
void osgIntrospection::Reflector< T >::setComparator | ( | const Comparator * | cmp | ) | [protected] |
Sets the comparator object for the current type.
Referenced by osgIntrospection::AtomicValueReflector< T >::AtomicValueReflector(), osgIntrospection::EnumReflector< T >::EnumReflector(), and osgIntrospection::WAtomicValueReflector< T >::WAtomicValueReflector().
void osgIntrospection::Reflector< T >::setDeclaringFile | ( | const std::string & | file | ) | const [protected] |
Sets the current type's declaring file.
void osgIntrospection::Reflector< T >::setReaderWriter | ( | const ReaderWriter * | rw | ) | [protected] |
Sets the current type's ReaderWriter object.
Referenced by osgIntrospection::AtomicValueReflector< T >::AtomicValueReflector(), osgIntrospection::EnumReflector< T >::EnumReflector(), and osgIntrospection::WAtomicValueReflector< T >::WAtomicValueReflector().
![]() | Generated at Tue Mar 22 2011 13:20:26 for the OpenSceneGraph by doxygen 1.7.3. |