Open 3D Engine AzCore API Reference  24.09
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Attribute Class Reference

#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 ([[maybe_unused]] const AZ::Dom::Value &arguments) const
 
virtual AZ::Dom::Value DomInvoke ([[maybe_unused]] const AZ::Dom::Value &arguments)
 
virtual AZ::Dom::Value GetAsDomValue ([[maybe_unused]] 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
 

Detailed Description

Base abstract class for all attributes. Use azrtti to get the appropriate version. Of course if NULL there is a data mismatch of attributes.

Member Function Documentation

◆ CanDomInvoke()

virtual bool AZ::Attribute::CanDomInvoke ( [[maybe_unused] ] const AZ::Dom::Value arguments) const
inlinevirtual

Returns true if this attribute is invokable, given a set of arguments.

Parameters
argumentsA Dom::Value that must contain an Array of arguments for this invokable attribute.

Reimplemented in AZ::AttributeMemberFunction< R(C::*)(Args...)>, and AZ::AttributeFunction< R(Args...)>.

◆ DomInvoke()

virtual AZ::Dom::Value AZ::Attribute::DomInvoke ( [[maybe_unused] ] const AZ::Dom::Value arguments)
inlinevirtual

Attempts to execute this attribute given an array of Dom::Values as parameters.

Parameters
argumentsA 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
Returns
A Dom::Value containing the marshalled result of the function call (null if the call returned void)

◆ GetAsDomValue()

virtual AZ::Dom::Value AZ::Attribute::GetAsDomValue ( [[maybe_unused] ] AZ::PointerObject  instanceObject)
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 >.

◆ GetPotentialClassTypeId()

virtual AZ::TypeId AZ::Attribute::GetPotentialClassTypeId ( ) const
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::* >.


The documentation for this class was generated from the following file: