Web Analytics Made Easy - Statcounter
Skip to content

Class SBCMetaValueType#

template <typename T>

ClassList > SBCMetaValueType

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* a = new A();
the compiler would complain that the symbol 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:

return new SBValueHolder<A*>(new A());
and the Extension SEOtherElement sees this value holder as a pointer to a SBValue (the base class of SBValueHolder<A*>):
SBValue* objectHolder = classProxy->createInstance();

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.

inline SBCMetaValueType::SBCMetaValueType () 


function clone#

Clones the value.

inline virtual SBCMetaValueBase * SBCMetaValueType::clone () const

Implements SBCMetaValueBase::clone


function getBaseType#

Returns the base type.

inline virtual SBCMetaValueBase * SBCMetaValueType::getBaseType () const

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.

inline virtual std::string SBCMetaValueType::getBaseTypeName () const

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.

inline virtual SBCMetaValueBase * SBCMetaValueType::getClassType () const

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.

inline virtual std::string SBCMetaValueType::getClassTypeName () const

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.

inline virtual unsigned int SBCMetaValueType::getNumberOfParameters () const

Implements SBCMetaValueBase::getNumberOfParameters


function getOutputType#

Returns the output type.

inline virtual SBCMetaValueBase * SBCMetaValueType::getOutputType () const

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.

inline virtual std::string SBCMetaValueType::getOutputTypeName () const

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 .

inline virtual SBCMetaValueBase * SBCMetaValueType::getParameterType (
    unsigned int i
) const

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 .

inline virtual std::string SBCMetaValueType::getParameterTypeName (
    unsigned int i
) const

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.

inline virtual SBCMetaValueBase * SBCMetaValueType::getParentType () const

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.

inline virtual std::string SBCMetaValueType::getParentTypeName () const

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.

inline virtual SBCMetaValueBase * SBCMetaValueType::getRootType () const

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.

inline virtual std::string SBCMetaValueType::getRootTypeName () const

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.

inline virtual std::string SBCMetaValueType::getShortBaseTypeName () const

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.

inline virtual std::string SBCMetaValueType::getShortClassTypeName () const

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.

inline virtual std::string SBCMetaValueType::getShortOutputTypeName () const

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 .

inline virtual std::string SBCMetaValueType::getShortParameterTypeName (
    unsigned int i
) const

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.

inline virtual std::string SBCMetaValueType::getShortParentTypeName () const

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.

inline virtual std::string SBCMetaValueType::getShortRootTypeName () const

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.

inline virtual std::string SBCMetaValueType::getShortTypeName () const

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.

inline virtual std::string SBCMetaValueType::getTypeName () const

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 .

inline virtual SBCContainerUUID SBCMetaValueType::getTypeUUID () const

Implements SBCMetaValueBase::getTypeUUID


function hasBaseType#

Returns true if the value is of a type that has a base type.

inline virtual bool SBCMetaValueType::hasBaseType () const

Implements SBCMetaValueBase::hasBaseType


function isArrayType#

Returns true if the value is of an array type.

inline virtual bool SBCMetaValueType::isArrayType () const

Implements SBCMetaValueBase::isArrayType


function isClassType#

Returns true if the value is of a class type.

inline virtual bool SBCMetaValueType::isClassType () const

Implements SBCMetaValueBase::isClassType


function isConstType#

Returns true if the value is of a const type.

inline virtual bool SBCMetaValueType::isConstType () const

Implements SBCMetaValueBase::isConstType


function isEnumType#

Returns true if the value is of an enum type.

inline virtual bool SBCMetaValueType::isEnumType () const

Implements SBCMetaValueBase::isEnumType


function isFunctionType#

Returns true if the value is of a function type.

inline virtual bool SBCMetaValueType::isFunctionType () const

Implements SBCMetaValueBase::isFunctionType


function isFundamentalType#

Returns true if the value is of a fundamental type.

inline virtual bool SBCMetaValueType::isFundamentalType () const

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.

inline virtual bool SBCMetaValueType::isPointerToFunctionType () const

Implements SBCMetaValueBase::isPointerToFunctionType


function isPointerToMemberFunctionType#

Returns true if the value is of a pointer to member function type.

inline virtual bool SBCMetaValueType::isPointerToMemberFunctionType () const

Implements SBCMetaValueBase::isPointerToMemberFunctionType


function isPointerToMemberType#

Returns true if the value is of a pointer to member type.

inline virtual bool SBCMetaValueType::isPointerToMemberType () const

Implements SBCMetaValueBase::isPointerToMemberType


function isPointerType#

Returns true if the value is of a pointer type.

inline virtual bool SBCMetaValueType::isPointerType () const

Implements SBCMetaValueBase::isPointerType


function isReferenceType#

Returns true if the value is of a reference type.

inline virtual bool SBCMetaValueType::isReferenceType () const

Implements SBCMetaValueBase::isReferenceType


function isRegisteredType#

Returns true if the value is of a registered type.

inline virtual bool SBCMetaValueType::isRegisteredType () const

Implements SBCMetaValueBase::isRegisteredType


function isVolatileType#

Returns true if the value is of a volatile type.

inline virtual bool SBCMetaValueType::isVolatileType () const

Implements SBCMetaValueBase::isVolatileType


function ~SBCMetaValueType#

Destructs the type.

inline virtual SBCMetaValueType::~SBCMetaValueType ()