osgIntrospection Namespace Reference


Classes

class  NoDefaultValueAttribute
class  DefaultValueAttribute
struct  PropertyGetter
class  CustomPropertyGetAttribute
struct  PropertySetter
class  CustomPropertySetAttribute
struct  PropertyCounter
class  CustomPropertyCountAttribute
struct  PropertyAdder
class  CustomPropertyAddAttribute
struct  PropertyRemover
class  CustomPropertyRemoveAttribute
struct  IndexInfo
class  CustomIndexAttribute
class  PropertyTypeAttribute
class  IndexTypeAttribute
struct  Comparator
struct  TotalOrderComparator
struct  PartialOrderComparator
class  ConstructorInfo
struct  Converter
class  CompositeConverter
struct  StaticConverter
struct  DynamicConverter
struct  ReinterpretConverter
struct  ConverterProxy
class  CustomAttribute
class  CustomAttributeProvider
class  Exception
struct  ReflectionException
struct  TypeNotDefinedException
struct  TypeIsAbstractException
struct  ConstructorNotFoundException
struct  InvokeNotImplementedException
struct  InvalidFunctionPointerException
struct  ConstIsConstException
struct  EmptyValueException
struct  TypeNotFoundException
struct  MethodNotFoundException
struct  StreamWriteErrorException
struct  StreamReadErrorException
class  StreamingNotSupportedException
struct  TypeConversionException
class  PropertyAccessException
struct  IndexValuesNotDefinedException
struct  ComparisonNotPermittedException
struct  ComparisonOperatorNotSupportedException
struct  ObjectInstanceCreator
struct  ValueInstanceCreator
struct  DummyInstanceCreator
class  MethodInfo
class  ParameterInfo
class  PropertyInfo
struct  PublicMemberAccessor
class  ReaderWriter
class  StdReaderWriter
class  StdWReaderWriter
class  EnumReaderWriter
class  PtrReaderWriter
struct  TypeInfoCmp
class  Reflection
struct  is_polymorphic
class  Reflector
struct  ValueReflector
struct  AbstractObjectReflector
struct  ObjectReflector
struct  AtomicValueReflector
struct  WAtomicValueReflector
struct  EnumReflector
struct  StdVectorReflector
struct  StdSetReflector
struct  StdListReflector
struct  StdMapReflector
struct  StdPairReflector
class  StaticMethodInfo0
class  StaticMethodInfo1
class  StaticMethodInfo2
class  StaticMethodInfo3
class  StaticMethodInfo4
class  StaticMethodInfo5
class  StaticMethodInfo6
class  StaticMethodInfo7
class  StaticMethodInfo8
class  StaticMethodInfo9
class  StaticMethodInfo10
class  StaticMethodInfo11
class  StaticMethodInfo12
class  StaticMethodInfo13
class  StaticMethodInfo14
class  StaticMethodInfo15
class  StaticMethodInfo16
class  StaticMethodInfo0< C, void >
class  StaticMethodInfo1< C, void, P0 >
class  StaticMethodInfo2< C, void, P0, P1 >
class  StaticMethodInfo3< C, void, P0, P1, P2 >
class  StaticMethodInfo4< C, void, P0, P1, P2, P3 >
class  StaticMethodInfo5< C, void, P0, P1, P2, P3, P4 >
class  StaticMethodInfo6< C, void, P0, P1, P2, P3, P4, P5 >
class  StaticMethodInfo7< C, void, P0, P1, P2, P3, P4, P5, P6 >
class  StaticMethodInfo8< C, void, P0, P1, P2, P3, P4, P5, P6, P7 >
class  StaticMethodInfo9< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8 >
class  StaticMethodInfo10< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >
class  StaticMethodInfo11< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >
class  StaticMethodInfo12< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >
class  StaticMethodInfo13< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >
class  StaticMethodInfo14< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >
class  StaticMethodInfo15< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >
class  StaticMethodInfo16< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >
class  Type
struct  TypedConstructorInfo0
struct  TypedConstructorInfo1
struct  TypedConstructorInfo2
struct  TypedConstructorInfo3
struct  TypedConstructorInfo4
struct  TypedConstructorInfo5
struct  TypedConstructorInfo6
struct  TypedConstructorInfo7
struct  TypedConstructorInfo8
struct  TypedConstructorInfo9
struct  TypedConstructorInfo10
struct  TypedConstructorInfo11
struct  TypedConstructorInfo12
struct  TypedConstructorInfo13
struct  TypedConstructorInfo14
struct  TypedConstructorInfo15
struct  TypedConstructorInfo16
class  TypedMethodInfo0
class  TypedMethodInfo1
class  TypedMethodInfo2
class  TypedMethodInfo3
class  TypedMethodInfo4
class  TypedMethodInfo5
class  TypedMethodInfo6
class  TypedMethodInfo7
class  TypedMethodInfo8
class  TypedMethodInfo9
class  TypedMethodInfo10
class  TypedMethodInfo11
class  TypedMethodInfo12
class  TypedMethodInfo13
class  TypedMethodInfo14
class  TypedMethodInfo15
class  TypedMethodInfo16
class  TypedMethodInfo0< C, void >
class  TypedMethodInfo1< C, void, P0 >
class  TypedMethodInfo2< C, void, P0, P1 >
class  TypedMethodInfo3< C, void, P0, P1, P2 >
class  TypedMethodInfo4< C, void, P0, P1, P2, P3 >
class  TypedMethodInfo5< C, void, P0, P1, P2, P3, P4 >
class  TypedMethodInfo6< C, void, P0, P1, P2, P3, P4, P5 >
class  TypedMethodInfo7< C, void, P0, P1, P2, P3, P4, P5, P6 >
class  TypedMethodInfo8< C, void, P0, P1, P2, P3, P4, P5, P6, P7 >
class  TypedMethodInfo9< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8 >
class  TypedMethodInfo10< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >
class  TypedMethodInfo11< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >
class  TypedMethodInfo12< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >
class  TypedMethodInfo13< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >
class  TypedMethodInfo14< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >
class  TypedMethodInfo15< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >
class  TypedMethodInfo16< C, void, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >
struct  TypeNameAliasProxy
class  Value

Typedefs

typedef std::vector< const
Converter * > 
ConverterList
typedef std::vector< const
CustomAttribute * > 
CustomAttributeList
typedef std::vector< const
CustomAttributeProvider * > 
CustomAttributeProviderList
typedef std::vector< const
Converter * > 
ConverterList
typedef std::map< const std::type_info *,
Type *, TypeInfoCmp
TypeMap
 A map of types, indexed by their associated type_info structure.
typedef std::vector< const
MethodInfo * > 
MethodInfoList
typedef std::vector< const
PropertyInfo * > 
PropertyInfoList
typedef std::vector< const
ParameterInfo * > 
ParameterInfoList
typedef std::vector< const
ConstructorInfo * > 
ConstructorInfoList
typedef std::map< const Type *,
PropertyInfoList
PropertyInfoMap
typedef std::map< const Type *,
MethodInfoList
MethodInfoMap
typedef std::map< int, std::string > EnumLabelMap
typedef std::vector< const
Type * > 
TypeList
typedef std::vector< ValueValueList
 A vector of values.

Functions

bool operator== (const Type &t1, const Type &t2)
bool operator!= (const Type &t1, const Type &t2)
bool operator< (const Type &t1, const Type &t2)
bool operator>= (const Type &t1, const Type &t2)
 Greater than or equal to operator. Returns !operator<().
bool OSGINTROSPECTION_EXPORT areParametersCompatible (const ParameterInfoList &pl1, const ParameterInfoList &pl2)
bool OSGINTROSPECTION_EXPORT areArgumentsCompatible (const ValueList &vl, const ParameterInfoList &pl, float &match)
template<typename T>
void convertArgument (ValueList &src, ValueList &dest, const ParameterInfoList &pl, int index)
template<typename T>
const T & getInstance (const Value &instance)
template<typename T>
T & getInstance (Value &instance)
template<typename T>
variant_cast (const Value &v)
template<typename T>
bool requires_conversion (const Value &v)
template<typename T>
T * extract_raw_data (Value &v)
template<typename T>
const T * extract_raw_data (const Value &v)


Detailed Description

The osgIntrospection library provides the an introspection/reflection framework for non intrusive run-time querying and calling of class properties and methods.

osgIntrospection is ideal for providing non native language binding to the OpenSceneGraph, convenient means for editing properties in a generic way, such as required in scene graph editors, and also facilitates the automatic serealization of objects.

osgIntrospection can be used to provide introspection support to 3rd Party libraries without the need to modify them to add this support, the wrappers providing the actual binding can be automatically generated by parsing header files via gen_wrapper utility. All the core OpenSceneGraph libraries have pre built wrappers available for you use.


Typedef Documentation

typedef std::vector<const Converter* > osgIntrospection::ConverterList

typedef std::vector<const CustomAttribute* > osgIntrospection::CustomAttributeList

typedef std::vector<const CustomAttributeProvider *> osgIntrospection::CustomAttributeProviderList

typedef std::vector<const Converter* > osgIntrospection::ConverterList

typedef std::map<const std::type_info* , Type* , TypeInfoCmp> osgIntrospection::TypeMap

A map of types, indexed by their associated type_info structure.

typedef std::vector<const MethodInfo* > osgIntrospection::MethodInfoList

typedef std::vector<const PropertyInfo* > osgIntrospection::PropertyInfoList

typedef std::vector<const ParameterInfo* > osgIntrospection::ParameterInfoList

typedef std::vector<const ConstructorInfo* > osgIntrospection::ConstructorInfoList

typedef std::map<const Type*, PropertyInfoList > osgIntrospection::PropertyInfoMap

typedef std::map<const Type*, MethodInfoList > osgIntrospection::MethodInfoMap

typedef std::map<int, std::string> osgIntrospection::EnumLabelMap

typedef std::vector<const Type* > osgIntrospection::TypeList

typedef std::vector<Value> osgIntrospection::ValueList

A vector of values.


Function Documentation

bool osgIntrospection::operator== ( const Type &  t1,
const Type &  t2 
) [inline]

Equality test operator. Returns true if the two instances of Type describe the same type, false otherwise.

bool osgIntrospection::operator!= ( const Type &  t1,
const Type &  t2 
) [inline]

Inequality test operator. Returns false if the two instances of Type describe the same type, true otherwise.

bool osgIntrospection::operator< ( const Type &  t1,
const Type &  t2 
) [inline]

Less than operator. Returns true if the first type comes before the second one. The actual ordering is implementation-dependent.

bool osgIntrospection::operator>= ( const Type &  t1,
const Type &  t2 
) [inline]

Greater than or equal to operator. Returns !operator<().

bool OSGINTROSPECTION_EXPORT osgIntrospection::areParametersCompatible ( const ParameterInfoList pl1,
const ParameterInfoList pl2 
)

bool OSGINTROSPECTION_EXPORT osgIntrospection::areArgumentsCompatible ( const ValueList vl,
const ParameterInfoList pl,
float &  match 
)

template<typename T>
void osgIntrospection::convertArgument ( ValueList src,
ValueList dest,
const ParameterInfoList pl,
int  index 
)

template<typename T>
const T& osgIntrospection::getInstance ( const Value &  instance  ) 

template<typename T>
T& osgIntrospection::getInstance ( Value &  instance  ) 

template<typename T>
T osgIntrospection::variant_cast ( const Value &  v  ) 

Tries to convert an instance of Value to an object of type T. If T is a plain type or a pointer type (either const or non-const), and it matches the type of the value contained in v, then the actual value of type T is returned. If T is a [const] reference type, and its base (non reference) type matches the internal value's type, then a [const] reference to the internal value is returned. If none of the above conditions are met, a conversion is attempted as described in Value::convert() and then variant_cast is called again with the converted value as parameter. If the conversion can't be completed, an exception is thrown. Conversions that attempt to make a const pointer non-const will fail.

template<typename T>
bool osgIntrospection::requires_conversion ( const Value &  v  ) 

Returns true if the Value passed as parameter can't be casted to the specified type without a (potentially slow) conversion. Returns false otherwise.

template<typename T>
T* osgIntrospection::extract_raw_data ( Value &  v  ) 

Returns a typed pointer to the data contained in a Value instance. If the value's type is not identical to type T, a null pointer is returned.

template<typename T>
const T* osgIntrospection::extract_raw_data ( const Value &  v  ) 

Returns a typed pointer to the data contained in a const Value instance. If the value's type is not identical to type T, a null pointer is returned.


Generated on Sun Oct 1 13:17:10 2006 for openscenegraph by  doxygen 1.4.7