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

Inherits AZ::BehaviorParameter.

Public Member Functions

 AZ_TYPE_INFO_WITH_NAME_DECL (BehaviorArgument)
 
 BehaviorArgument (const BehaviorArgument &)=default
 
 BehaviorArgument (BehaviorArgument &&)
 
template<class T >
 BehaviorArgument (T *value)
 
 BehaviorArgument (BehaviorObject *value)
 Special handling for the generic object holder.
 
 BehaviorArgument (BehaviorArgumentValueTypeTag_t, BehaviorObject *value)
 
template<class T >
void Set (T *value)
 
void Set (BehaviorObject *value)
 
void Set (BehaviorArgumentValueTypeTag_t, BehaviorObject *value)
 
void Set (const BehaviorParameter &param)
 
void Set (const BehaviorArgument &param)
 
void * GetValueAddress () const
 
 operator BehaviorObject () const
 Convert to BehaviorObject implicitly for passing generic parameters (usually not known at compile time)
 
template<class T >
bool ConvertTo ()
 Converts internally the value to a specific type known at compile time.
 
bool ConvertTo (const AZ::Uuid &typeId)
 Converts a value to a specific one by typeID (usually when the type is not known at compile time)
 
template<typename T >
AZStd::decay_t< T > * GetAsUnsafe () const
 This function is Unsafe, because it assumes that you have called ConvertTo<T> prior to called it and it returned true (basically mean the BehaviorArgument is converted to T)
 
BehaviorArgumentoperator= (const BehaviorArgument &)=default
 
BehaviorArgumentoperator= (BehaviorArgument &&)
 
template<typename T >
BehaviorArgumentoperator= (T &&result)
 
template<typename T >
bool StoreResult (T &&result)
 Stores a value (usually return value of a function).
 
template<typename T , typename = AZStd::enable_if_t<AZStd::is_trivially_destructible_v<AZStd::decay_t<T>>>>
void StoreInTempData (T &&value)
 Used internally to store values in the temp data.
 
template<class T >
AZ_FORCE_INLINE void Set (T *value)
 
template<class T >
AZ_FORCE_INLINE bool ConvertTo ()
 
template<typename T >
AZ_FORCE_INLINE AZStd::decay_t< T > * GetAsUnsafe () const
 
template<typename T >
AZ_FORCE_INLINE BehaviorArgumentoperator= (T &&result)
 
template<typename T >
AZ_FORCE_INLINE bool StoreResult (T &&result)
 
- Public Member Functions inherited from AZ::BehaviorParameter
 AZ_TYPE_INFO_WITH_NAME_DECL (BehaviorParameter)
 

Public Attributes

void * m_value
 Pointer to value, keep it mind to check the traits as if the value is pointer, this will be pointer to pointer and use GetValueAddress to get the actual value address.
 
AZStd::function< void()> m_onAssignedResult
 
BehaviorParameter::TempValueParameterAllocator m_tempData
 Temp data for conversion, etc. while preparing the parameter for a call (POD only)
 
- Public Attributes inherited from AZ::BehaviorParameter
const char * m_name
 
Uuid m_typeId
 
IRttiHelperm_azRtti
 
u32 m_traits
 

Friends

class BehaviorDefaultValue
 

Additional Inherited Members

- Public Types inherited from AZ::BehaviorParameter
enum  Traits : u32 {
  TR_POINTER = (1 << 0) , TR_CONST = (1 << 1) , TR_REFERENCE = (1 << 2) , TR_THIS_PTR = (1 << 3) ,
  TR_STRING = (1 << 4) , TR_ARRAY_BEGIN = (1 << 5) , TR_ARRAY_END = (1 << 6) , TR_ARRAY_SIZE = (1 << 7) ,
  TR_INDEX = (1 << 8) , TR_NONE = 0U
}
 
typedef AZStd::static_buffer_allocator< 32, 32 > TempValueParameterAllocator
 Temporary POD buffer when we convert parameters on the stack.
 

Member Function Documentation

◆ ConvertTo()

template<class T >
bool AZ::BehaviorArgument::ConvertTo ( )

Converts internally the value to a specific type known at compile time.

Returns
true if conversion was successful.

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