Cortex  10.0.0-a4
Public Types | Public Member Functions | List of all members
IECore::Parameter Class Reference

#include <Parameter.h>

+ Inheritance diagram for IECore::Parameter:

Public Types

typedef std::pair< std::string, ObjectPtr > Preset
 
typedef std::vector< PresetPresetsContainer
 A type to store a bunch of preset values for the Parameter.
 
- Public Types inherited from IECore::RunTimeTyped
typedef RefCounted BaseClass
 A typedef for the class this class derives from. All RunTimeTyped classes define this typedef.
 
- Public Types inherited from IECore::RefCounted
typedef size_t RefCount
 

Public Member Functions

 IE_CORE_DECLARERUNTIMETYPED (Parameter, RunTimeTyped)
 
 Parameter (const std::string &name, const std::string &description, ObjectPtr defaultValue, const PresetsContainer &presets=PresetsContainer(), bool presetsOnly=false, ConstCompoundObjectPtr userData=nullptr)
 
Basic Parameter information
const std::string & name () const
 Returns the name of this parameter.
 
const InternedStringinternedName () const
 
const std::string & description () const
 Returns the description for this parameter.
 
virtual const ObjectdefaultValue () const
 Returns the default value for this parameter.
 
virtual const PresetsContainergetPresets () const
 Returns the presets for this parameter.
 
virtual void setPresets (const PresetsContainer &presets)
 Overrides the presets for this parameter.
 
virtual bool presetsOnly () const
 
CompoundObjectuserData ()
 Returns the userdata. This can be modified freely.
 
const CompoundObjectuserData () const
 Read only version of the above.
 
Validation

The Parameter class defines the concept of whether or not a value is valid. This is used to provide guarantees about the values passed to Parameterised processes. For various efficiency reasons it's possible to set an invalid value, but member functions are provided to guarantee validity when it's needed.

virtual bool valueValid (const Object *value, std::string *reason=nullptr) const
 
bool valueValid (std::string *reason=nullptr) const
 Calls valueValid( getValue(), reason )
 
void validate () const
 
void validate (const Object *value) const
 
Value setting

These functions set the Parameter value, with or without validation.

Threading:
It is not safe to call these methods from multiple concurrent threads, nor to call them while other threads are getting the value.
virtual void setValue (ObjectPtr value)
 
void setValidatedValue (ObjectPtr value)
 
void setValue (const std::string &presetName)
 
Value getting

These functions provide access to the Parameter value, with or without validation.

Threading:
These methods may be called from multiple concurrent threads provided that no other thread is setting the value at the time. Please note that this is currently not true of the CompoundParameter overrides for these methods - see the CompoundParameter documentation for details.
virtual ObjectgetValue ()
 
virtual const ObjectgetValue () const
 
ObjectgetValidatedValue ()
 
const ObjectgetValidatedValue () const
 
template<typename T >
T * getTypedValue ()
 Convenience function returning runTimeCast<T>( getValue() ).
 
template<typename T >
const T * getTypedValue () const
 Convenience function returning runTimeCast<T>( getValue() ).
 
template<typename T >
T * getTypedValidatedValue ()
 
template<typename T >
const T * getTypedValidatedValue () const
 
std::string getCurrentPresetName () const
 
- Public Member Functions inherited from IECore::RunTimeTyped
 IE_CORE_DECLAREMEMBERPTR (RunTimeTyped)
 
virtual TypeId typeId () const
 
virtual const char * typeName () const
 
virtual bool isInstanceOf (TypeId typeId) const
 
virtual bool isInstanceOf (const char *typeName) const
 
- Public Member Functions inherited from IECore::RefCounted
 IE_CORE_DECLAREMEMBERPTR (RefCounted)
 
void addRef () const
 Add a reference to the current object.
 
void removeRef () const
 Remove a reference from the current object.
 
RefCount refCount () const
 Returns the current reference count.
 

Additional Inherited Members

- Static Public Member Functions inherited from IECore::RunTimeTyped
static TypeId staticTypeId ()
 Returns the TypeId for this class, without needing an instance.
 
static const char * staticTypeName ()
 Returns the type name for this class, without needing an instance.
 
static TypeId baseTypeId ()
 
static const char * baseTypeName ()
 
static bool inheritsFrom (TypeId typeId)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (const char *typeName)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (TypeId type, TypeId baseType)
 Returns true if type inherits from baseType.
 
static bool inheritsFrom (const char *typeName, const char *baseTypeName)
 Returns true if typeName inherits from baseTypeName.
 
static TypeId baseTypeId (TypeId typeId)
 Returns the base type of the given type, or InvalidTypeId if no such base exists.
 
static const std::vector< TypeId > & baseTypeIds (TypeId typeId)
 
static const std::set< TypeId > & derivedTypeIds (TypeId typeId)
 
static TypeId typeIdFromTypeName (const char *typeName)
 
static const char * typeNameFromTypeId (TypeId typeId)
 
static void registerType (TypeId derivedTypeId, const char *derivedTypeName, TypeId baseTypeId)
 Allows external modules to register their own type ids.
 
- Protected Types inherited from IECore::RunTimeTyped
typedef std::map< TypeId, TypeIdBaseTypeRegistryMap
 
typedef std::map< TypeId, std::vector< TypeId > > BaseTypesRegistryMap
 
typedef std::map< TypeId, std::set< TypeId > > DerivedTypesRegistryMap
 
typedef tbb::spin_rw_mutex Mutex
 
typedef std::map< TypeId, std::string > TypeIdsToTypeNamesMap
 
typedef std::map< std::string, TypeIdTypeNamesToTypeIdsMap
 
- Static Protected Member Functions inherited from IECore::RunTimeTyped
static BaseTypeRegistryMap & baseTypeRegistry ()
 
static DerivedTypesRegistryMap & derivedTypesRegistry ()
 
static BaseTypesRegistryMap & completeBaseTypesRegistry ()
 
static DerivedTypesRegistryMap & completeDerivedTypesRegistry ()
 
static void derivedTypeIdsWalk (TypeId typeId, std::set< TypeId > &)
 
static TypeIdsToTypeNamesMap & typeIdsToTypeNames ()
 
static TypeNamesToTypeIdsMap & typeNamesToTypeIds ()
 
- Static Protected Attributes inherited from IECore::RunTimeTyped
static Mutex g_baseTypeIdsMutex
 
static Mutex g_derivedTypeIdsMutex
 

Detailed Description

The Parameter base class represents a means of describing data to be passed to some process.

Member Typedef Documentation

typedef std::pair<std::string, ObjectPtr> IECore::Parameter::Preset

A type which associates a value for the Parameter with a name.

Constructor & Destructor Documentation

IECore::Parameter::Parameter ( const std::string &  name,
const std::string &  description,
ObjectPtr  defaultValue,
const PresetsContainer presets = PresetsContainer(),
bool  presetsOnly = false,
ConstCompoundObjectPtr  userData = nullptr 
)

Creates a new Parameter. If presetsOnly is true then the parameter acts somewhat like an enum and only accepts values if they are present in the presets map.

Member Function Documentation

std::string IECore::Parameter::getCurrentPresetName ( ) const

If the current value is one of the presets, then returns its name, otherwise returns the empty string.

template<typename T >
T* IECore::Parameter::getTypedValidatedValue ( )

Convenience function returning runTimeCast<T>( getValidatedValue() ). Note that if a value is valid but not of the requested type an Exception is not thrown.

template<typename T >
const T* IECore::Parameter::getTypedValidatedValue ( ) const

Convenience function returning runTimeCast<T>( getValidatedValue() ). Note that if a value is valid but not of the requested type an Exception is not thrown.

Object* IECore::Parameter::getValidatedValue ( )

Returns the value held by this parameter if it is valid, throwing an Exception if it is not.

const Object* IECore::Parameter::getValidatedValue ( ) const

Returns the value held by this parameter if it is valid, throwing an Exception if it is not.

virtual Object* IECore::Parameter::getValue ( )
virtual

Returns the value held by this parameter. Note that this value may not be valid.

Reimplemented in IECore::CompoundParameter.

virtual const Object* IECore::Parameter::getValue ( ) const
virtual

Returns the value held by this parameter. Note that this value may not be valid.

Reimplemented in IECore::CompoundParameter.

virtual bool IECore::Parameter::presetsOnly ( ) const
virtual

Returns true if this parameter only accepts parameters present as presets.

Reimplemented in IECore::CompoundParameter.

void IECore::Parameter::setValidatedValue ( ObjectPtr  value)

If valueValid( value ) is true, calls setValue( value ), otherwise throws an Exception.

virtual void IECore::Parameter::setValue ( ObjectPtr  value)
virtual

Sets the value held by this parameter. Note that this function will not prevent you from setting a value for which valueValid( value ) is false.

Reimplemented in IECore::CompoundParameter.

void IECore::Parameter::setValue ( const std::string &  presetName)

Sets the value held by this parameter to one of the named presets. Throws an exception if presetName is not a defined preset.

void IECore::Parameter::validate ( ) const

Throws an Exception if valueValid( getValue() ) is false, otherwise does nothing.

void IECore::Parameter::validate ( const Object value) const

Throws an Exception if valueValid( value ) is false, otherwise does nothing.

virtual bool IECore::Parameter::valueValid ( const Object value,
std::string *  reason = nullptr 
) const
virtual

Determines whether or not a given value is suitable for use in this Parameter. Should be implemented in subclasses to perform validation on the supplied value, returning false if it's unsuitable. When returning false, reason should be set to some descriptive string. All implementations should call the base class valueValid(), returning false immediately if it returns false. The default implementation returns false only if presetsOnly() is true and value is not present in the presets() map, or if value is a NullObject instance.

Reimplemented in IECore::NumericParameter< T >, IECore::CompoundParameter, IECore::FileSequenceVectorParameter, IECore::TypedObjectParameter< T >, IECore::PathVectorParameter, IECore::FileSequenceParameter, IECore::PathParameter, IECore::TypedParameter< T >, IECore::FileNameParameter, IECore::ObjectParameter, IECore::ValidatedStringParameter, and IECore::DirNameParameter.


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