osgIntrospection::Reflector< T > Class Template Reference

A Reflector is a proxy class that is used to create a new description of a given type. More...

Inheritance diagram for osgIntrospection::Reflector< T >:

Inheritance graph
[legend]

List of all members.

Public Types

typedef T reflected_type
typedef Reflector< T > inherited

Public Member Functions

virtual ~Reflector ()
 Virtual destructor.
template<>
void init_reference_types ()
template<>
void init_void_converter ()

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.
TypegetType ()
 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.
PropertyInfoaddProperty (PropertyInfo *pi)
 Adds a property description to the current type.
MethodInfoaddMethod (MethodInfo *mi)
 Adds a method description to the current type.
MethodInfoaddProtectedMethod (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.
ConstructorInfoaddConstructor (ConstructorInfo *ci)
 Adds a constructor description to the current type.
ConstructorInfoaddProtectedConstructor (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'.
CustomAttributeProvideraddAttribute (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.

Classes

struct  ConstPtrConstructor
struct  PtrConstructor


Detailed Description

template<typename T>
class osgIntrospection::Reflector< T >

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.


Member Typedef Documentation

template<typename T>
typedef T osgIntrospection::Reflector< T >::reflected_type

template<typename T>
typedef Reflector<T> osgIntrospection::Reflector< T >::inherited

Reimplemented in osgIntrospection::ValueReflector< T >, osgIntrospection::AbstractObjectReflector< T >, osgIntrospection::ObjectReflector< T >, and osgIntrospection::EnumReflector< T >.


Constructor & Destructor Documentation

template<typename T>
virtual osgIntrospection::Reflector< T >::~Reflector (  )  [inline, virtual]

Virtual destructor.

template<typename T>
osgIntrospection::Reflector< T >::Reflector ( const std::string &  name,
const std::string &  ns,
bool  abstract = false 
) [inline, protected]

Direct initialization constructor.

Parameter 'name' is the name of the type being reflected and 'ns' is its namespace.

template<typename T>
osgIntrospection::Reflector< T >::Reflector ( const std::string &  qname,
bool  abstract = false 
) [inline, 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 "::").


Member Function Documentation

template<typename T>
Type* osgIntrospection::Reflector< T >::getType (  )  [inline, protected]

Returns the Type object being described.

template<typename T>
void osgIntrospection::Reflector< T >::addBaseType ( const Type type  )  [inline, protected]

Declares a new base type for the current type.

template<typename T>
void osgIntrospection::Reflector< T >::setComparator ( const Comparator cmp  )  [inline, protected]

Sets the comparator object for the current type.

template<typename T>
PropertyInfo * osgIntrospection::Reflector< T >::addProperty ( PropertyInfo pi  )  [inline, protected]

Adds a property description to the current type.

template<typename T>
MethodInfo * osgIntrospection::Reflector< T >::addMethod ( MethodInfo mi  )  [inline, protected]

Adds a method description to the current type.

template<typename T>
MethodInfo * osgIntrospection::Reflector< T >::addProtectedMethod ( MethodInfo mi  )  [inline, protected]

Adds a protected method description to the current type.

template<typename T>
void osgIntrospection::Reflector< T >::addEnumLabel ( int  v,
const std::string &  label,
bool  strip_namespace = true 
) [inline, protected]

Adds an enumeration label to the current type.

template<typename T>
ConstructorInfo * osgIntrospection::Reflector< T >::addConstructor ( ConstructorInfo ci  )  [inline, 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.

template<typename T>
ConstructorInfo * osgIntrospection::Reflector< T >::addProtectedConstructor ( ConstructorInfo ci  )  [inline, protected]

Adds a protected constructor description to the current type.

template<typename T>
std::string osgIntrospection::Reflector< T >::qualifyName ( const std::string &  name  )  const [inline, protected]

Returns a string containing the qualified version of 'name'.

template<typename T>
CustomAttributeProvider * osgIntrospection::Reflector< T >::addAttribute ( const CustomAttribute attrib  )  [inline, protected]

Adds a custom attribute to the type being described.

template<typename T>
void osgIntrospection::Reflector< T >::setReaderWriter ( const ReaderWriter rw  )  [inline, protected]

Sets the current type's ReaderWriter object.

template<typename T>
void osgIntrospection::Reflector< T >::setDeclaringFile ( const std::string &  file  )  const [inline, protected]

Sets the current type's declaring file.

template<>
void osgIntrospection::Reflector< void >::init_reference_types (  )  [inline]

template<>
void osgIntrospection::Reflector< void >::init_void_converter (  )  [inline]


The documentation for this class was generated from the following file:
Generated at Sun Oct 14 02:12:27 2007 for the OpenSceneGraph by doxygen 1.5.3.