Class SBCMetaValueType#
template <typename T>
This template class describes a value type. More...
#include <SBCMetaValueType.hpp>
Inherits the following classes: SBCMetaValueBase
Inherited by the following classes: SBCMetaValueHolder
Public Functions#
Type | Name |
---|---|
SBCMetaValueType () Constructs a type. |
|
virtual SBCMetaValueBase * | clone () const Clones the value. |
virtual SBCMetaValueBase * | getBaseType () const Returns the base type. |
virtual std::string | getBaseTypeName () const Returns the base type name. |
virtual SBCMetaValueBase * | getClassType () const Returns the class type. |
virtual std::string | getClassTypeName () const Returns the class type name. |
virtual unsigned int | getNumberOfParameters () const Returns the number of parameters of a function type. |
virtual SBCMetaValueBase * | getOutputType () const Returns the output type. |
virtual std::string | getOutputTypeName () const Returns the output type name. |
virtual SBCMetaValueBase * | getParameterType (unsigned int i) const Returns the type of parameter i . |
virtual std::string | getParameterTypeName (unsigned int i) const Returns the type name of parameter i . |
virtual SBCMetaValueBase * | getParentType () const Returns the parent type. |
virtual std::string | getParentTypeName () const Returns the parent type name. |
virtual SBCMetaValueBase * | getRootType () const Returns the root type. |
virtual std::string | getRootTypeName () const Returns the root type name. |
virtual std::string | getShortBaseTypeName () const Returns the short base type name. |
virtual std::string | getShortClassTypeName () const Returns the short class type name. |
virtual std::string | getShortOutputTypeName () const Returns the short output type name. |
virtual std::string | getShortParameterTypeName (unsigned int i) const Returns the short type name of parameter i . |
virtual std::string | getShortParentTypeName () const Returns the short parent type name. |
virtual std::string | getShortRootTypeName () const Returns the short root type name. |
virtual std::string | getShortTypeName () const Returns the short type name. |
virtual std::string | getTypeName () const Returns the type name. |
virtual SBCContainerUUID | getTypeUUID () const Returns the type UUID . |
virtual bool | hasBaseType () const Returns true if the value is of a type that has a base type. |
virtual bool | isArrayType () const Returns true if the value is of an array type. |
virtual bool | isClassType () const Returns true if the value is of a class type. |
virtual bool | isConstType () const Returns true if the value is of a const type. |
virtual bool | isEnumType () const Returns true if the value is of an enum type. |
virtual bool | isFunctionType () const Returns true if the value is of a function type. |
virtual bool | isFundamentalType () const Returns true if the value is of a fundamental type. |
virtual bool | isPointerToFunctionType () const Returns true if the value is of a pointer to function type. |
virtual bool | isPointerToMemberFunctionType () const Returns true if the value is of a pointer to member function type. |
virtual bool | isPointerToMemberType () const Returns true if the value is of a pointer to member type. |
virtual bool | isPointerType () const Returns true if the value is of a pointer type. |
virtual bool | isReferenceType () const Returns true if the value is of a reference type. |
virtual bool | isRegisteredType () const Returns true if the value is of a registered type. |
virtual bool | isVolatileType () const Returns true if the value is of a volatile type. |
virtual | ~SBCMetaValueType () Destructs the type. |
Public Functions inherited from SBCMetaValueBase#
See SBCMetaValueBase
Type | Name |
---|---|
virtual SBCMetaValueBase * | call (const SBCMetaValue & object, const std::string & functionName, const SBCMetaValue & t0, const SBCMetaValue & t1, const SBCMetaValue & t2, const SBCMetaValue & t3, const SBCMetaValue & t4, const SBCMetaValue & t5, const SBCMetaValue & t6, const SBCMetaValue & t7, const SBCMetaValue & t8, const SBCMetaValue & t9, const SBCMetaValue & t10, const SBCMetaValue & t11, const SBCMetaValue & t12, const SBCMetaValue & t13, const SBCMetaValue & t14, const SBCMetaValue & t15) const Calls the function functionName of the value with argumentst0 ,t1 , ...,t15 . |
virtual void | clear (const SBCMetaValue & object, const std::string & attributeName) const Clears attribute attributeName from the value when possible. |
virtual SBCMetaValueBase * | clone () const Clones the value. |
virtual SBCMetaValueBase * | constCall (const SBCMetaValue & object, const std::string & functionName, const SBCMetaValue & t0, const SBCMetaValue & t1, const SBCMetaValue & t2, const SBCMetaValue & t3, const SBCMetaValue & t4, const SBCMetaValue & t5, const SBCMetaValue & t6, const SBCMetaValue & t7, const SBCMetaValue & t8, const SBCMetaValue & t9, const SBCMetaValue & t10, const SBCMetaValue & t11, const SBCMetaValue & t12, const SBCMetaValue & t13, const SBCMetaValue & t14, const SBCMetaValue & t15) const Calls the const function functionName of the value with argumentst0 ,t1 , ...,t15 . |
virtual SBCMetaValueBase * | get (const SBCMetaValue & object, const std::string & attributeName) const Returns the value of attribute attributeName for this value. |
virtual SBCMetaValueBase * | getBaseType () const Returns the base type. |
virtual std::string | getBaseTypeName () const Returns the base type name. |
virtual SBCMetaValueBase * | getClassType () const Returns the class type. |
virtual std::string | getClassTypeName () const Returns the class type name. |
virtual unsigned int | getNumberOfParameters () const Returns the number of parameters of a function type. |
virtual SBCMetaValueBase * | getOutputType () const Returns the output type. |
virtual std::string | getOutputTypeName () const Returns the output type name. |
virtual SBCMetaValueBase * | getParameterType (unsigned int i) const Returns the type of parameter i . |
virtual std::string | getParameterTypeName (unsigned int i) const Returns the type name of parameter i . |
virtual SBCMetaValueBase * | getParentType () const Returns the parent type. |
virtual std::string | getParentTypeName () const Returns the parent type name. |
virtual SBCClassProxy * | getProxy () const Returns the proxy of the value. |
virtual SBCMetaValueBase * | getRootType () const Returns the root type. |
virtual std::string | getRootTypeName () const Returns the root type name. |
virtual std::string | getShortBaseTypeName () const Returns the short base type name. |
virtual std::string | getShortClassTypeName () const Returns the short class type name. |
virtual std::string | getShortOutputTypeName () const Returns the short output type name. |
virtual std::string | getShortParameterTypeName (unsigned int i) const Returns the short type name of parameter i . |
virtual std::string | getShortParentTypeName () const Returns the short parent type name. |
virtual std::string | getShortRootTypeName () const Returns the short root type name. |
virtual std::string | getShortTypeName () const Returns the short type name. |
virtual unsigned int | getSize (const SBCMetaValue & object, const std::string & attributeName) const Returns the size of attribute attributeName in the value when relevant. |
virtual std::string | getTypeName () const Returns the type name. |
virtual SBCContainerUUID | getTypeUUID () const Returns the type UUID . |
virtual bool | has (const SBCMetaValue & object, const std::string & attributeName) const Returns whether attribute attributeName exists in the value and has a value. |
virtual bool | hasBaseType () const Returns true if the value is of a type that has a base type. |
virtual bool | isArrayType () const Returns true if the value is of an array type. |
virtual bool | isClassType () const Returns true if the value is of a class type. |
virtual bool | isConstType () const Returns true if the value is of a const type. |
virtual bool | isEnumType () const Returns true if the value is of an enum type. |
virtual bool | isFunctionType () const Returns true if the value is of a function type. |
virtual bool | isFundamentalType () const Returns true if the value is of a fundamental type. |
virtual bool | isPointerToFunctionType () const Returns true if the value is of a pointer to function type. |
virtual bool | isPointerToMemberFunctionType () const Returns true if the value is of a pointer to member function type. |
virtual bool | isPointerToMemberType () const Returns true if the value is of a pointer to member type. |
virtual bool | isPointerType () const Returns true if the value is of a pointer type. |
virtual bool | isReferenceType () const Returns true if the value is of a reference type. |
virtual bool | isRegisteredType () const Returns true if the value is of a registered type. |
virtual bool | isVolatileType () const Returns true if the value is of a volatile type. |
virtual void | set (const SBCMetaValue & object, const std::string & attributeName, const SBCMetaValue & value, const SBCMetaValue & size) const Sets the value of attribute attributeName for this value tovalue . |
virtual | ~SBCMetaValueBase () Destructs the value. |
Protected Functions inherited from SBCMetaValueBase#
See SBCMetaValueBase
Type | Name |
---|---|
SBCMetaValueBase () Constructs a value. |
Detailed Description#
Parameters:
T
The type described
This template class holds information about a type. It is also the direct base class of the template class SBCMetaValueHolder, used to hold values.
Assume a SAMSON Extension called SEElement
defines a class A
, and another Extension called SEOtherElement
wants to use it. If the Extension called SEOtherElement
does not have access to the declaration of class A
(typically provided in a header file included in SEElement
), it cannot use the symbol A
in its source code. For example, if the source code of SEOtherElement
contained the line:
A
is not defined.
In order to provide access to exposed classes, SAMSON uses a mechanism to hold values (for example, pointers to objects) in a uniform way. In the example above, the constructor exposed in the Extension SEElement
returns a value holder that stores a pointer to the new instance of class A
:
SEOtherElement
sees this value holder as a pointer to a SBValue (the base class of SBValueHolder<A*>
):
The template class SBCMetaValueType does not hold a value (this is the role of SBCMetaValueHolder, which derives from SBCMetaValueType), but provides information about a type T
. For example, the short name of a registered type may be retrieved using this class:
// shortName = "SBAtom";
std::string shortName = SBType<SBMStructuralModelNodeAtom>::getShortTypeName();
Short name: SBValueType
See also: SBCMetaType, SBCMetaValue, SBCMetaValueHolder
See also: Introspection
Public Functions Documentation#
function SBCMetaValueType#
Constructs a type.
function clone#
Clones the value.
Implements SBCMetaValueBase::clone
function getBaseType#
Returns the base type.
This function returns the base type, i.e. an instance of the template class SBCMetaValueType which contains type information about the base type of this type. For example, the base type of SBMStructuralModelNodeAtom is SBMStructuralModelNode.
Note that this function returns a type. If a string is needed, use SBCMetaValueType::getBaseTypeName().
See also: SBCMetaValueType::getBaseTypeName()
Implements SBCMetaValueBase::getBaseType
function getBaseTypeName#
Returns the base type name.
This function returns the type name of the base type of T
. For example, the base type name of SBMStructuralModelNodeAtom is "SBMStructuralModelNode".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getBaseType().
See also: SBCMetaValueType::getBaseType()
Implements SBCMetaValueBase::getBaseTypeName
function getClassType#
Returns the class type.
This function returns the class type, i.e. an instance of the template class SBCMetaValueType which contains type information about the class type of this type, when the type is a pointer to a member or a pointer to a member function. For example, the class type name of & SBMStructuralModelNodeAtom::clearName
is SBMStructuralModelNodeAtom
.
Note that this function returns a type. If a string is needed, use SBCMetaValueType::getClassTypeName().
See also: SBCMetaValueType::getClassTypeName()
Implements SBCMetaValueBase::getClassType
function getClassTypeName#
Returns the class type name.
This function returns the type name of the class associated to T
, when T
is a pointer to a member or a pointer to a member function ("void" otherwise). For example, the class type name of & SBMStructuralModelNodeAtom::clearName
is "SBMStructuralModelNodeAtom".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getClassType().
See also: SBCMetaValueType::getClassType()
Implements SBCMetaValueBase::getClassTypeName
function getNumberOfParameters#
Returns the number of parameters of a function type.
Implements SBCMetaValueBase::getNumberOfParameters
function getOutputType#
Returns the output type.
This function returns the output type, i.e. an instance of the template class SBCMetaValueType which contains type information about the output type of this type, when the type is a function. For example, the output type name of SBMStructuralModelNodeAtom* getFirstAtom()
is SBMStructuralModelNodeAtom.
Note that this function returns a type. If a string is needed, use SBCMetaValueType::getOutputTypeName().
See also: SBCMetaValueType::getOutputTypeName()
Implements SBCMetaValueBase::getOutputType
function getOutputTypeName#
Returns the output type name.
This function returns the type name of the output type of T
, when T
is a function. For example, the output type name of SBMStructuralModelNodeAtom* getFirstAtom()
is "SBMStructuralModelNodeAtom*".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getOutputType().
See also: SBCMetaValueType::getOutputType()
Implements SBCMetaValueBase::getOutputTypeName
function getParameterType#
Returns the type of parameter i
.
This function returns the type of parameter i
, , i.e. an instance of the template class SBCMetaValueType which contains type information about the type of parameter i
, when the type is a function. For example, the type name of parameter 2 of myFunction(int, double, const SBMStructuralModelNodeAtom*)
is const SBMStructuralModelNodeAtom*
.
Note that this function returns a type. If a string is needed, use SBCMetaValueType::getParameterTypeName().
See also: SBCMetaValueType::getParameterTypeName()
Implements SBCMetaValueBase::getParameterType
function getParameterTypeName#
Returns the type name of parameter i
.
This function returns the type name of parameter i
of type T
, when T
is a function ("void" otherwise). For example, the type name of parameter 2 of myFunction(int, double, const SBMStructuralModelNodeAtom*)
is "const SBMStructuralModelNodeAtom*".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getParameterType().
See also: SBCMetaValueType::getParameterType()
Implements SBCMetaValueBase::getParameterTypeName
function getParentType#
Returns the parent type.
This function returns the parent type, i.e. an instance of the template class SBCMetaValueType which contains type information about the parent type of this type. For example, the parent type of int*
is int
.
Note that this function returns a type. If a string is needed, use SBCMetaValueType::getParentTypeName().
See also: SBCMetaValueType::getParentTypeName()
Implements SBCMetaValueBase::getParentType
function getParentTypeName#
Returns the parent type name.
This function returns the type name of the parent type of T
. For example, the parent type name of int*
is "int".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getParentType().
See also: SBCMetaValueType::getParentType(), SBCMetaValueType::getRootTypeName()
Implements SBCMetaValueBase::getParentTypeName
function getRootType#
Returns the root type.
This function returns the root type, i.e. an instance of the template class SBCMetaValueType which contains type information about the root type of this type. For example, the root type of const std::string&
is std::string
.
Note that this function returns a type. If a string is needed, use SBCMetaValueType::getRootTypeName().
See also: SBCMetaValueType::getRootTypeName()
Implements SBCMetaValueBase::getRootType
function getRootTypeName#
Returns the root type name.
This function returns the type name of the root type of T
. For example, the root type name of const std::string&
is "std::string".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getRootType().
See also: SBCMetaValueType::getRootType(), SBCMetaValueType::getParentTypeName()
Implements SBCMetaValueBase::getRootTypeName
function getShortBaseTypeName#
Returns the short base type name.
This function returns the short type name of the base type of T
. For example, the short base type name of SBMStructuralModelNodeAtom is "SBNode".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getBaseType().
See also: SBCMetaValueType::getBaseType()
Implements SBCMetaValueBase::getShortBaseTypeName
function getShortClassTypeName#
Returns the short class type name.
This function returns the short type name of the class associated to T
, when T
is a pointer to a member or a pointer to a member function ("void" otherwise). For example, the short class type name of & SBMStructuralModelNodeAtom::clearName
is "SBAtom*".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getClassType().
See also: SBCMetaValueType::getClassType()
Implements SBCMetaValueBase::getShortClassTypeName
function getShortOutputTypeName#
Returns the short output type name.
This function returns the short type name of the output type of T
, when T
is a function. For example, the short output type name of SBMStructuralModelNodeAtom* getFirstAtom()
is "SBAtom".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getOutputType().
See also: SBCMetaValueType::getOutputType()
Implements SBCMetaValueBase::getShortOutputTypeName
function getShortParameterTypeName#
Returns the short type name of parameter i
.
This function returns the short type name of parameter i
of type T
, when T
is a function ("void" otherwise). For example, the short type name of parameter 2 of myFunction(int, double, const SBMStructuralModelNodeAtom*)
is "const SBAtom*".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getParameterType().
See also: SBCMetaValueType::getParameterType()
Implements SBCMetaValueBase::getShortParameterTypeName
function getShortParentTypeName#
Returns the short parent type name.
This function returns the short type name of the parent type of T
. For example, the short parent type name of SBMStructuralModelNodeAtom*
is "SBAtom".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getParentType().
See also: SBCMetaValueType::getParentType(), SBCMetaValueType::getShortRootTypeName()
Implements SBCMetaValueBase::getShortParentTypeName
function getShortRootTypeName#
Returns the short root type name.
This function returns the type name of the root type of T
. For example, the short root type name of const SBMStructuralModelNodeAtom &
is "SBAtom".
Note that this function returns a string. If a type is needed, use SBCMetaValueType::getRootType().
See also: SBCMetaValueType::getRootType(), SBCMetaValueType::getShortParentTypeName()
Implements SBCMetaValueBase::getShortRootTypeName
function getShortTypeName#
Returns the short type name.
When the type T
is fundamental, this function returns a string containing the fundamental type (e.g. "unsigned int"). When T
is registered, this function returns its short type name. Else, this function recursively decomposes the type in order to provide a string describing it, but using short names (e.g. "const SBAtom*").
Implements SBCMetaValueBase::getShortTypeName
function getTypeName#
Returns the type name.
When the type T
is fundamental, this function returns a string containing the fundamental type (e.g. "unsigned int"). When T
is registered, this function returns its type name. Else, this function recursively decomposes the type in order to provide a string describing it (e.g. "const SBMStructuralModelNodeAtom*").
Implements SBCMetaValueBase::getTypeName
function getTypeUUID#
Returns the type UUID .
Implements SBCMetaValueBase::getTypeUUID
function hasBaseType#
Returns true if the value is of a type that has a base type.
Implements SBCMetaValueBase::hasBaseType
function isArrayType#
Returns true if the value is of an array type.
Implements SBCMetaValueBase::isArrayType
function isClassType#
Returns true if the value is of a class type.
Implements SBCMetaValueBase::isClassType
function isConstType#
Returns true if the value is of a const type.
Implements SBCMetaValueBase::isConstType
function isEnumType#
Returns true if the value is of an enum type.
Implements SBCMetaValueBase::isEnumType
function isFunctionType#
Returns true if the value is of a function type.
Implements SBCMetaValueBase::isFunctionType
function isFundamentalType#
Returns true if the value is of a fundamental type.
Returns true if the value is of a fundamental type (void, bool, char, signed char, unsigned char, wchar_t, short, unsigned short, int, unsigned int, long, unsigned long, float, double or long double).
Implements SBCMetaValueBase::isFundamentalType
function isPointerToFunctionType#
Returns true if the value is of a pointer to function type.
Implements SBCMetaValueBase::isPointerToFunctionType
function isPointerToMemberFunctionType#
Returns true if the value is of a pointer to member function type.
Implements SBCMetaValueBase::isPointerToMemberFunctionType
function isPointerToMemberType#
Returns true if the value is of a pointer to member type.
Implements SBCMetaValueBase::isPointerToMemberType
function isPointerType#
Returns true if the value is of a pointer type.
Implements SBCMetaValueBase::isPointerType
function isReferenceType#
Returns true if the value is of a reference type.
Implements SBCMetaValueBase::isReferenceType
function isRegisteredType#
Returns true if the value is of a registered type.
Implements SBCMetaValueBase::isRegisteredType
function isVolatileType#
Returns true if the value is of a volatile type.
Implements SBCMetaValueBase::isVolatileType
function ~SBCMetaValueType#
Destructs the type.