This class describes a class proxy. More...
Constructors and destructors | |
virtual | ~SBCClassProxy () |
Destructs the class proxy. | |
Identity | |
virtual std::string | getName () const |
Returns the name of the class. | |
virtual SBCClass::Type | getType () const |
Returns the type of the class. | |
virtual SBCContainerUUID | getUUID () const |
Returns the UUID of the class. | |
virtual std::string | getDescription () const |
Returns the description of the class. | |
virtual std::string | getElement () const |
Returns the SAMSON Element containing the class. | |
virtual SBCContainerUUID | getElementUUID () const |
Returns the UUID of the SAMSON Element containing the class. | |
virtual SBVersionNumber | getVersionNumber () const |
Returns the version number of the class. | |
virtual SBVersionNumber | getSDKVersionNumber () const |
Returns the version number of the SAMSON SDK used to compile the class. | |
Factory | |
virtual SBCClassFactory const * | getFactory () const |
Returns the factory of the class. | |
virtual SBValue | createInstanceType () const |
Creates a value type that holds the class type. | |
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 . | |
Interface | |
virtual SBCClassInterface const * | getInterface () const |
Returns the interface of the class. | |
virtual SBValue | call (const SBValue &object, const std::string &functionName, 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 |
Calls the function for the specific object with arguments t0 , t1 , ..., t15 . | |
virtual SBValue | constCall (const SBValue &object, const std::string &functionName, 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 |
Calls the const function for the specific object with arguments t0 , t1 , ..., t15 . | |
virtual SBValue | get (const SBValue &object, const std::string &attributeName) const |
Returns the value of attribute attributeName for the specific object . | |
virtual void | set (const SBValue &object, const std::string &attributeName, const SBValue &value, const SBValue &size=0) const |
Sets the value of attribute attributeName for the specific object to value . | |
virtual bool | has (const SBValue &object, const std::string &attributeName) const |
Returns whether attribute attributeName exists in the object and has a value. | |
virtual void | clear (const SBValue &object, const std::string &attributeName) const |
Clears attribute attributeName from the object when possible. | |
virtual unsigned int | getSize (const SBValue &object, const std::string &attributeName) const |
Returns the size of attribute attributeName in the object when relevant. | |
Debugging | |
void | print (unsigned int offset=0) const |
Prints debugging information. | |
This class describes a class proxy, i.e. an access to a class that has been exposed through a class descriptor in a SAMSON Element.
Assume for example a SAMSON Element contains the following class:
as well as the following class descriptor:
In this example, the functionality of class A is accessible to developers of SAMSON Elements, 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 create instances of it:
and call its functions:
In general, a class proxy gives access to information about a class (e.g. its name, its type, etc.), as well as its factory (its collection of constructors) and its interface (its collection of functions).
Note that, when multiple instances of the class are created, or when multiple calls are performed, it is more efficient to store pointers to class constructors and class functions and reuse them.
Note that a class proxy should never be deleted.
Please refer to the chapter about introspection for more information.
Short name: SBProxy