#include <ReflectContext.h>
Inherited by AZ::AttributeData< T >, AZ::AttributeFunction< R(Args...)>, and AZ::AttributeInvocable< Invocable >.
Public Types | |
using | ContextDeleter = void(*)(void* contextData) |
Public Member Functions | |
AZ_TYPE_INFO_WITH_NAME_DECL (Attribute) | |
AZ_RTTI_NO_TYPE_INFO_DECL () | |
void | SetContextData (void *contextData, ContextDeleter destroyer) |
void * | GetContextData () const |
virtual bool | IsInvokable () const |
Returns true if this attribute is an invokable function or method. | |
virtual AZ::TypeId | GetPotentialClassTypeId () const |
virtual AttributeUniquePtr | GetVoidInstanceAttributeInvocable () |
virtual bool | CanDomInvoke (const AZ::Dom::Value &arguments) const |
virtual AZ::Dom::Value | DomInvoke (const AZ::Dom::Value &arguments) |
virtual AZ::Dom::Value | GetAsDomValue (AZ::PointerObject instanceObject) |
Static Public Member Functions | |
static const char * | GetTypeName () |
static AZ::Name | GetTypeField () |
static AZ::Name | GetInstanceField () |
static AZ::Name | GetAttributeField () |
Public Attributes | |
bool | m_describesChildren = false |
bool | m_childClassOwned = false |
Static Protected Attributes | |
static const AZ::Name | s_typeField |
static const AZ::Name | s_instanceField |
static const AZ::Name | s_attributeField |
Base abstract class for all attributes. Use azrtti to get the appropriate version. Of course if NULL there is a data mismatch of attributes.
|
inlinevirtual |
Returns true if this attribute is invokable, given a set of arguments.
arguments | A Dom::Value that must contain an Array of arguments for this invokable attribute. |
Reimplemented in AZ::AttributeFunction< R(Args...)>, AZ::AttributeInvocable< Invocable >, and AZ::AttributeMemberFunction< R(C::*)(Args...)>.
|
inlinevirtual |
Attempts to execute this attribute given an array of Dom::Values as parameters.
arguments | A Dom::Value that must contain an Array of arguments for this invokable attribute. The first argument will be the instance argument if the function being invoked is a member function |
Reimplemented in AZ::AttributeFunction< R(Args...)>, AZ::AttributeInvocable< Invocable >, and AZ::AttributeMemberFunction< R(C::*)(Args...)>.
|
inlinevirtual |
Gets a marshalled Dom::Value representation of this attribute bound to a given instance. By default this is just abbreviated to a marshalled version of the data stored in the attribute, but for invokable attributes, override this method to serializes a pointer to the instance and this attribute
Reimplemented in AZ::AttributeData< T >, AZ::AttributeInvocable< Invocable >, AZ::AttributeMemberData< T C::* >, AZ::AttributeMemberFunction< R(C::*)(Args...) const >, and AZ::AttributeMemberFunction< R(C::*)(Args...)>.
|
inlinevirtual |
Returns the AZ::TypeId for attribute if it potentially an attribute referencing a class member such as a member function pointer or member data pointer. This also returns the TypeId for the first argument of an AttributeInvocable if it contains a function or function object that is a class type. If the attribute is not referencing any type of potential function object or member pointer that requires a class instance(i.e AttributeData or AttributeFunction), then a Null TypeId is returned
Reimplemented in AZ::AttributeInvocable< Invocable >, and AZ::AttributeMemberData< T C::* >.
|
inlinevirtual |
Returns true if this attribute is an invokable function or method.
Reimplemented in AZ::AttributeFunction< R(Args...)>, AZ::AttributeInvocable< Invocable >, and AZ::AttributeMemberFunction< R(C::*)(Args...)>.