osgDB::ClassInterface Class Reference

`#include <ClassInterface>`

## Public Types

typedef std::map< std::string, osgDB::BaseSerializer::Type > | PropertyMap
| Properties supported for a single class.
typedef std::map< std::string, PropertyMap > | ObjectPropertyMap
| Properties supported for a range of classes, used for white and black lists.

## Public Member Functions

| ClassInterface ()
bool | getPropertyType (const osg::Object *object, const std::string &propertyName, osgDB::BaseSerializer::Type &type) const
| get the Type of the specified property, return true if property is supported, otherwise false.
bool | areTypesCompatible (osgDB::BaseSerializer::Type lhs, osgDB::BaseSerializer::Type rhs) const
| return type of two types are compatible
osg::Object * | createObject (const std::string &compoundClassdName) const
template<typename T>
bool | getProperty (const osg::Object *object, const std::string &propertyName, T &value)
| template method for getting property data, return true if property available and the type is compatible, otherwise returns false.
template<typename T>
bool | setProperty (osg::Object *object, const std::string &propertyName, const T &value)
| template method for setting property data, return true if property available and the type is compatible, otherwise returns false.
std::string | getTypeName (osgDB::BaseSerializer::Type type) const
| get the human readable name of type.
osgDB::BaseSerializer::Type | getType (const std::string &typeName) const
| get the enum value of type given the human readable name.
bool | getSupportedProperties (const osg::Object *object, PropertyMap &properties, bool searchAssociates=true) const
| Get the list of of properties supported by object.
bool | isObjectOfType (const osg::Object *object, const std::string &compoundClassName) const
| return true if the object can be cast to the specified class specified by compoundClassName
bool | run (void *objectPtr, const std::string &compoundClassName, const std::string &methodName, osg::Parameters &inputParameters, osg::Parameters &outputParameters) const
| run method of object
bool | run (osg::Object *object, const std::string &methodName, osg::Parameters &inputParameters, osg::Parameters &outputParameters) const
| run method of object
bool | hasMethod (const std::string &compoundClassName, const std::string &methodName) const
| checked for support of specified method
bool | hasMethod (const osg::Object *object, const std::string &methodName) const
| checked for support of specified method
ObjectPropertyMap & | getWhiteList ()
| Get the list of properties that are explicitly defined as supported.
const ObjectPropertyMap & | getWhiteList () const
| Get the const list of properties that are explicitly defined as supported.
ObjectPropertyMap & | getBlackList ()
| Get the list of properties that are explicitly defined as not supported.
const ObjectPropertyMap & | getBlackList () const
| Get the const list of properties that are explicitly defined as not supported.
osgDB::ObjectWrapper * | getObjectWrapper (const osg::Object *object) const
osgDB::BaseSerializer * | getSerializer (const osg::Object *object, const std::string &propertyName, osgDB::BaseSerializer::Type &type) const
template<>
bool | getProperty (const osg::Object *object, const std::string &propertyName, ObjectPtr &value)
template<>
bool | setProperty (osg::Object *object, const std::string &propertyName, const ObjectPtr &value)

## Protected Types

typedef std::map< std::string, osgDB::BaseSerializer::Type > | TypeNameToTypeMap
typedef std::map< osgDB::BaseSerializer::Type, std::string > | TypeToTypeNameMap

## Protected Member Functions

bool | copyPropertyDataFromObject (const osg::Object *object, const std::string &propertyName, void *valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)
bool | copyPropertyDataToObject (osg::Object *object, const std::string &propertyName, const void *valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)
bool | copyPropertyObjectFromObject (const osg::Object *object, const std::string &propertyName, void *valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)
bool | copyPropertyObjectToObject (osg::Object *object, const std::string &propertyName, const void *valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)

## Protected Attributes

osgDB::OutputStream | _outputStream
PropertyOutputIterator * | _poi
osgDB::InputStream | _inputStream
PropertyInputIterator * | _pii
TypeNameToTypeMap | _typeNameToTypeMap
TypeToTypeNameMap | _typeToTypeNameMap
ObjectPropertyMap | _whiteList
ObjectPropertyMap | _blackList

## Detailed Description

ClassInterface provides a general means of checking for supported properties of classes, and getting/setting those properties. Uses the osgDB serializers to do the actual object query/get/set.

## Member Typedef Documentation

## ObjectPropertyMap

typedef std::map<std::string, PropertyMap> osgDB::ClassInterface::ObjectPropertyMap

Properties supported for a range of classes, used for white and black lists.

## PropertyMap

typedef std::map<std::string, osgDB::BaseSerializer::Type> osgDB::ClassInterface::PropertyMap

Properties supported for a single class.

## TypeNameToTypeMap

typedef std::map<std::string, osgDB::BaseSerializer::Type> osgDB::ClassInterface::TypeNameToTypeMap

protected

## TypeToTypeNameMap

typedef std::map<osgDB::BaseSerializer::Type, std::string> osgDB::ClassInterface::TypeToTypeNameMap

protected

## Constructor & Destructor Documentation

## ClassInterface()

osgDB::ClassInterface::ClassInterface | ( |  | ) |

## Member Function Documentation

## areTypesCompatible()

bool osgDB::ClassInterface::areTypesCompatible | ( | osgDB::BaseSerializer::Type | lhs,
|  | osgDB::BaseSerializer::Type | rhs ) const

return type of two types are compatible

## copyPropertyDataFromObject()

bool osgDB::ClassInterface::copyPropertyDataFromObject | ( | const osg::Object * | object,
|  | const std::string & | propertyName,
|  | void * | valuePtr,
|  | unsigned int | valueSize,
|  | osgDB::BaseSerializer::Type | valueType )

protected

Referenced by getProperty().

## copyPropertyDataToObject()

bool osgDB::ClassInterface::copyPropertyDataToObject | ( | osg::Object * | object,
|  | const std::string & | propertyName,
|  | const void * | valuePtr,
|  | unsigned int | valueSize,
|  | osgDB::BaseSerializer::Type | valueType )

protected

Referenced by setProperty().

## copyPropertyObjectFromObject()

bool osgDB::ClassInterface::copyPropertyObjectFromObject | ( | const osg::Object * | object,
|  | const std::string & | propertyName,
|  | void * | valuePtr,
|  | unsigned int | valueSize,
|  | osgDB::BaseSerializer::Type | valueType )

protected

Referenced by getProperty().

## copyPropertyObjectToObject()

bool osgDB::ClassInterface::copyPropertyObjectToObject | ( | osg::Object * | object,
|  | const std::string & | propertyName,
|  | const void * | valuePtr,
|  | unsigned int | valueSize,
|  | osgDB::BaseSerializer::Type | valueType )

protected

Referenced by setProperty().

## createObject()

osg::Object * osgDB::ClassInterface::createObject | ( | const std::string & | compoundClassdName | ) | const

create an object of specified type for provided compound class name in the form libraryName::className.

References getProperty(), and setProperty().

## getBlackList() [1/2]

ObjectPropertyMap & osgDB::ClassInterface::getBlackList | ( |  | ) |

inline

Get the list of properties that are explicitly defined as not supported.

References _blackList.

## getBlackList() [2/2]

const ObjectPropertyMap & osgDB::ClassInterface::getBlackList | ( |  | ) | const

inline

Get the const list of properties that are explicitly defined as not supported.

References _blackList.

## getObjectWrapper()

osgDB::ObjectWrapper * osgDB::ClassInterface::getObjectWrapper | ( | const osg::Object * | object | ) | const

## getProperty() [1/2]

template<>

bool osgDB::ClassInterface::getProperty | ( | const osg::Object * | object,
|  | const std::string & | propertyName,
|  | ObjectPtr & | value )

inline

References copyPropertyObjectFromObject(), osg::Object::getUserDataContainer(), osg::UserDataContainer::getUserObject(), and OSG_INFO.

## getProperty() [2/2]

template<typename T>

bool osgDB::ClassInterface::getProperty | ( | const osg::Object * | object,
|  | const std::string & | propertyName,
|  | T & | value )

template method for getting property data, return true if property available and the type is compatible, otherwise returns false.

References copyPropertyDataFromObject().

Referenced by createObject().

## getPropertyType()

bool osgDB::ClassInterface::getPropertyType | ( | const osg::Object * | object,
|  | const std::string & | propertyName,
|  | osgDB::BaseSerializer::Type & | type ) const

get the Type of the specified property, return true if property is supported, otherwise false.

## getSerializer()

osgDB::BaseSerializer * osgDB::ClassInterface::getSerializer | ( | const osg::Object * | object,
|  | const std::string & | propertyName,
|  | osgDB::BaseSerializer::Type & | type ) const

## getSupportedProperties()

bool osgDB::ClassInterface::getSupportedProperties | ( | const osg::Object * | object,
|  | PropertyMap & | properties,
|  | bool | searchAssociates = true ) const

Get the list of of properties supported by object.

## getType()

osgDB::BaseSerializer::Type osgDB::ClassInterface::getType | ( | const std::string & | typeName | ) | const

get the enum value of type given the human readable name.

## getTypeName()

std::string osgDB::ClassInterface::getTypeName | ( | osgDB::BaseSerializer::Type | type | ) | const

get the human readable name of type.

## getWhiteList() [1/2]

ObjectPropertyMap & osgDB::ClassInterface::getWhiteList | ( |  | ) |

inline

Get the list of properties that are explicitly defined as supported.

References _whiteList.

## getWhiteList() [2/2]

const ObjectPropertyMap & osgDB::ClassInterface::getWhiteList | ( |  | ) | const

inline

Get the const list of properties that are explicitly defined as supported.

References _whiteList.

## hasMethod() [1/2]

bool osgDB::ClassInterface::hasMethod | ( | const osg::Object * | object,
|  | const std::string & | methodName ) const

checked for support of specified method

## hasMethod() [2/2]

bool osgDB::ClassInterface::hasMethod | ( | const std::string & | compoundClassName,
|  | const std::string & | methodName ) const

checked for support of specified method

## isObjectOfType()

bool osgDB::ClassInterface::isObjectOfType | ( | const osg::Object * | object,
|  | const std::string & | compoundClassName ) const

return true if the object can be cast to the specified class specified by compoundClassName

## run() [1/2]

bool osgDB::ClassInterface::run | ( | osg::Object * | object,
|  | const std::string & | methodName,
|  | osg::Parameters & | inputParameters,
|  | osg::Parameters & | outputParameters ) const

run method of object

## run() [2/2]

bool osgDB::ClassInterface::run | ( | void * | objectPtr,
|  | const std::string & | compoundClassName,
|  | const std::string & | methodName,
|  | osg::Parameters & | inputParameters,
|  | osg::Parameters & | outputParameters ) const

run method of object

## setProperty() [1/2]

template<>

bool osgDB::ClassInterface::setProperty | ( | osg::Object * | object,
|  | const std::string & | propertyName,
|  | const ObjectPtr & | value )

inline

References osg::UserDataContainer::addUserObject(), osg::Object::className(), copyPropertyObjectToObject(), osg::Object::getOrCreateUserDataContainer(), osg::UserDataContainer::getUserObject(), osg::UserDataContainer::getUserObjectIndex(), OSG_INFO, osgDB::BaseSerializer::RW_IMAGE, osg::Object::setName(), and osg::UserDataContainer::setUserObject().

## setProperty() [2/2]

template<typename T>

bool osgDB::ClassInterface::setProperty | ( | osg::Object * | object,
|  | const std::string & | propertyName,
|  | const T & | value )

template method for setting property data, return true if property available and the type is compatible, otherwise returns false.

References copyPropertyDataToObject().

Referenced by createObject().

## Member Data Documentation

## _blackList

ObjectPropertyMap osgDB::ClassInterface::_blackList

protected

Referenced by getBlackList(), and getBlackList().

## _inputStream

osgDB::InputStream osgDB::ClassInterface::_inputStream

protected

## _outputStream

osgDB::OutputStream osgDB::ClassInterface::_outputStream

protected

## _pii

PropertyInputIterator* osgDB::ClassInterface::_pii

protected

## _poi

PropertyOutputIterator* osgDB::ClassInterface::_poi

protected

## _typeNameToTypeMap

TypeNameToTypeMap osgDB::ClassInterface::_typeNameToTypeMap

protected

## _typeToTypeNameMap

TypeToTypeNameMap osgDB::ClassInterface::_typeToTypeNameMap

protected

## _whiteList

ObjectPropertyMap osgDB::ClassInterface::_whiteList

protected

Referenced by getWhiteList(), and getWhiteList().

The documentation for this class was generated from the following file:

- ClassInterface