Class SBCClassConstructor#
ClassList > SBCClassConstructor
This class describes a class constructor in a class proxy. More...
#include <SBCClassConstructor.hpp>
Inherited by the following classes: SBCClassConstructor0, SBCClassConstructor1, SBCClassConstructor10, SBCClassConstructor11, SBCClassConstructor12, SBCClassConstructor13, SBCClassConstructor14, SBCClassConstructor15, SBCClassConstructor16, SBCClassConstructor2, SBCClassConstructor3, SBCClassConstructor4, SBCClassConstructor5, SBCClassConstructor6, SBCClassConstructor7, SBCClassConstructor8, SBCClassConstructor9
Public Functions#
Type | Name |
---|---|
SBCClassConstructor () Constructs a class constructor. |
|
virtual bool | canCreateInstance (const SBValue & t0=SBValue(), const SBValue & t1=SBValue(), const SBValue & t2=SBValue(), const SBValue & t3=SBValue(), const SBValue & t4=SBValue(), const SBValue & t5=SBValue(), const SBValue & t6=SBValue(), const SBValue & t7=SBValue(), const SBValue & t8=SBValue(), const SBValue & t9=SBValue(), const SBValue & t10=SBValue(), const SBValue & t11=SBValue(), const SBValue & t12=SBValue(), const SBValue & t13=SBValue(), const SBValue & t14=SBValue(), const SBValue & t15=SBValue()) const Returns true if and only if the constructor can create an instance with arguments t0 ,t1 , ...,t15 . |
virtual SBValue | createInstance (const SBValue & t0=SBValue(), const SBValue & t1=SBValue(), const SBValue & t2=SBValue(), const SBValue & t3=SBValue(), const SBValue & t4=SBValue(), const SBValue & t5=SBValue(), const SBValue & t6=SBValue(), const SBValue & t7=SBValue(), const SBValue & t8=SBValue(), const SBValue & t9=SBValue(), const SBValue & t10=SBValue(), const SBValue & t11=SBValue(), const SBValue & t12=SBValue(), const SBValue & t13=SBValue(), const SBValue & t14=SBValue(), const SBValue & t15=SBValue()) const Creates an instance of the class with arguments t0 ,t1 , ...,t15 . |
virtual std::string | getClassName () const = 0 Returns the class name. |
virtual unsigned int | getNumberOfParameters () noexcept const = 0 Returns the number of parameters of the function. |
virtual SBValue | getParameterType (int i) const = 0 Returns the parameter type of the constructor parameter i . |
virtual std::string | getParameterTypeName (int i) const = 0 Returns the parameter type name of the constructor parameter i . |
virtual std::string | signature () const = 0 Returns the signature of the function. |
virtual | ~SBCClassConstructor () Destructs the constructor. |
Detailed Description#
This class describes a class constructor in a class proxy. A class constructor object is a functor that provides access to a SAMSON Extension constructor that has been exposed through a class descriptor (see Introspection).
Assume for example a SAMSON Extension contains the following class:
class A {
SB_CLASS
public:
A() {}
virtual ~A() {}
};
SB_REGISTER_TYPE(A, "A", "BF99103E-06FE-C4C1-D929-4C6E833B101C");
SB_CLASS_BEGIN(A);
SB_CLASS_TYPE(SBCClass::App);
SB_CLASS_DESCRIPTION("Empty class");
SB_FACTORY_BEGIN;
SB_CONSTRUCTOR_0(A);
SB_FACTORY_END;
SB_INTERFACE_BEGIN;
SB_INTERFACE_END;
SB_CLASS_END(A);
In this example, the constructor A()
is accessible to other SAMSON Extensions through the Introspection, even when the definition of class A is not available. Precisely, even though other developers might not have access to the definition of class A
(i.e. they do not have the appropriate header file), they may still retrieve constructors through the class proxy:
SBProxy* classProxy = SAMSON::getProxy("A");
SBFactory* classFactory = classProxy->getFactory();
SBConstructor* classConstructor = classFactory->getConstructor();
Note that the class proxy also makes it possible to directly create an instance of an exposed class without having first to obtain the SBCClassConstructor object:
However, when multiple calls to the constructor are performed, it is more efficient to store a pointer to a SBCClassConstructor object and reuse it.Note that a class constructor object should never be deleted.
Please refer to the chapter about Introspection for more information.
Short name: SBConstructor
See also: Introspection
See also: SBCClassFactory, SBCClassProxy
Public Functions Documentation#
function SBCClassConstructor#
Constructs a class constructor.
function canCreateInstance#
Returns true if and only if the constructor can create an instance with arguments t0
,t1
, ...,t15
.
virtual bool SBCClassConstructor::canCreateInstance (
const SBValue & t0=SBValue (),
const SBValue & t1=SBValue (),
const SBValue & t2=SBValue (),
const SBValue & t3=SBValue (),
const SBValue & t4=SBValue (),
const SBValue & t5=SBValue (),
const SBValue & t6=SBValue (),
const SBValue & t7=SBValue (),
const SBValue & t8=SBValue (),
const SBValue & t9=SBValue (),
const SBValue & t10=SBValue (),
const SBValue & t11=SBValue (),
const SBValue & t12=SBValue (),
const SBValue & t13=SBValue (),
const SBValue & t14=SBValue (),
const SBValue & t15=SBValue ()
) const
function createInstance#
Creates an instance of the class with arguments t0
,t1
, ...,t15
.
virtual SBValue SBCClassConstructor::createInstance (
const SBValue & t0=SBValue (),
const SBValue & t1=SBValue (),
const SBValue & t2=SBValue (),
const SBValue & t3=SBValue (),
const SBValue & t4=SBValue (),
const SBValue & t5=SBValue (),
const SBValue & t6=SBValue (),
const SBValue & t7=SBValue (),
const SBValue & t8=SBValue (),
const SBValue & t9=SBValue (),
const SBValue & t10=SBValue (),
const SBValue & t11=SBValue (),
const SBValue & t12=SBValue (),
const SBValue & t13=SBValue (),
const SBValue & t14=SBValue (),
const SBValue & t15=SBValue ()
) const
function getClassName#
Returns the class name.
function getNumberOfParameters#
Returns the number of parameters of the function.
function getParameterType#
Returns the parameter type of the constructor parameter i
.
function getParameterTypeName#
Returns the parameter type name of the constructor parameter i
.
function signature#
Returns the signature of the function.
function ~SBCClassConstructor#
Destructs the constructor.