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::GenericClassInfo Class Referenceabstract

#include <SerializeContext.h>

Inherited by AZ::SerializeGenericTypeInfo< AZ::Outcome< t_Success, t_Failure > >::GenericClassOutcome, AZ::SerializeGenericTypeInfo< AZStd::array< T, Size > >::GenericClassInfoArray, AZ::SerializeGenericTypeInfo< AZStd::basic_string< E, T, A > >::GenericClassBasicString, AZ::SerializeGenericTypeInfo< AZStd::bitset< NumBits > >::GenericClassBitSet, AZ::SerializeGenericTypeInfo< AZStd::fixed_vector< T, Capacity > >::GenericClassInfoFixedVector, AZ::SerializeGenericTypeInfo< AZStd::forward_list< T, A > >::GenericClassInfoForwardList, AZ::SerializeGenericTypeInfo< AZStd::intrusive_ptr< T > >::GenericClassIntrusivePtr, AZ::SerializeGenericTypeInfo< AZStd::list< T, A > >::GenericClassInfoList, AZ::SerializeGenericTypeInfo< AZStd::map< K, M, C, A > >::GenericClassMap, AZ::SerializeGenericTypeInfo< AZStd::optional< T > >::GenericClassOptional, AZ::SerializeGenericTypeInfo< AZStd::pair< T1, T2 > >::GenericClassPair, AZ::SerializeGenericTypeInfo< AZStd::set< K, C, A > >::GenericClassSet, AZ::SerializeGenericTypeInfo< AZStd::shared_ptr< T > >::GenericClassSharedPtr, AZ::SerializeGenericTypeInfo< AZStd::tuple< Types... > >::GenericClassTuple, AZ::SerializeGenericTypeInfo< AZStd::unique_ptr< T, Deleter > >::GenericClassUniquePtr, AZ::SerializeGenericTypeInfo< AZStd::unordered_map< K, M, H, E, A > >::GenericClassUnorderedMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_multimap< K, M, H, E, A > >::GenericClassUnorderedMultiMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_multiset< K, H, E, A > >::GenericClassUnorderedMultiSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_set< K, H, E, A > >::GenericClassUnorderedSet, AZ::SerializeGenericTypeInfo< AZStd::vector< AZ::u8, A > >::GenericClassByteStream, AZ::SerializeGenericTypeInfo< AZStd::vector< T, A > >::GenericClassInfoVector, AZ::SerializeGenericTypeInfo< ConfigurableStack< StackBaseType > >::GenericConfigurableStackInfo, AZ::SerializeGenericTypeInfo< Data::Asset< T > >::GenericClassGenericAsset, and AZ::SerializeGenericTypeInfo< Internal::RValueToLValueWrapper< T > >::GenericClassWrapper.

Public Member Functions

virtual SerializeContext::ClassDataGetClassData ()=0
 Return the generic class "class Data" independent from the underlaying templates.
 
virtual size_t GetNumTemplatedArguments ()=0
 
virtual AZ::TypeId GetTemplatedTypeId (size_t element)=0
 
virtual AZ::TypeId GetSpecializedTypeId () const =0
 By default returns AzTypeInfo<ValueType>::Uuid.
 
virtual AZ::TypeId GetGenericTypeId () const
 Return the generic Type Id associated with the GenericClassInfo.
 
virtual void Reflect (SerializeContext *)=0
 Register the generic class info using the SerializeContext.
 
virtual bool CanStoreType (const Uuid &typeId) const
 Returns true if the generic class can store the supplied type.
 
virtual AZ::TypeId GetLegacySpecializedTypeId () const
 

Detailed Description

Base class that will provide various information for a generic entry.

The difference between Generic id and Specialized id: Generic Id represents the Uuid which represents the inherited GenericClassInfo class(ex. GenericClassBasicString -> AzTypeInfo<GenericClassBasicString>::Uuid Specialized Id represents the Uuid of the class that the GenericClassinfo specializes(ex. GenericClassBasicString -> AzTypeInfo<AZStd::string>::Uuid By default for non-templated classes the Specialized Id is the Uuid returned by AzTypeInfo<ValueType>::Uuid. For specialized classes the Specialized Id is normally made up of the concatenation of the Template Class Uuid and the Template Arguments Uuids using a SHA-1.

Member Function Documentation

◆ CanStoreType()

virtual bool AZ::GenericClassInfo::CanStoreType ( const Uuid typeId) const
inlinevirtual

◆ GetClassData()

virtual SerializeContext::ClassData * AZ::GenericClassInfo::GetClassData ( )
pure virtual

Return the generic class "class Data" independent from the underlaying templates.

Implemented in AZ::SerializeGenericTypeInfo< Data::Asset< T > >::GenericClassGenericAsset, AZ::SerializeGenericTypeInfo< AZStd::vector< T, A > >::GenericClassInfoVector, AZ::SerializeGenericTypeInfo< AZStd::fixed_vector< T, Capacity > >::GenericClassInfoFixedVector, AZ::SerializeGenericTypeInfo< AZStd::list< T, A > >::GenericClassInfoList, AZ::SerializeGenericTypeInfo< AZStd::forward_list< T, A > >::GenericClassInfoForwardList, AZ::SerializeGenericTypeInfo< AZStd::array< T, Size > >::GenericClassInfoArray, AZ::SerializeGenericTypeInfo< AZStd::set< K, C, A > >::GenericClassSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_set< K, H, E, A > >::GenericClassUnorderedSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_multiset< K, H, E, A > >::GenericClassUnorderedMultiSet, AZ::SerializeGenericTypeInfo< AZ::Outcome< t_Success, t_Failure > >::GenericClassOutcome, AZ::SerializeGenericTypeInfo< AZStd::pair< T1, T2 > >::GenericClassPair, AZ::SerializeGenericTypeInfo< AZStd::tuple< Types... > >::GenericClassTuple, AZ::SerializeGenericTypeInfo< AZStd::map< K, M, C, A > >::GenericClassMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_map< K, M, H, E, A > >::GenericClassUnorderedMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_multimap< K, M, H, E, A > >::GenericClassUnorderedMultiMap, AZ::SerializeGenericTypeInfo< AZStd::basic_string< E, T, A > >::GenericClassBasicString, AZ::SerializeGenericTypeInfo< AZStd::vector< AZ::u8, A > >::GenericClassByteStream, AZ::SerializeGenericTypeInfo< AZStd::bitset< NumBits > >::GenericClassBitSet, AZ::SerializeGenericTypeInfo< AZStd::shared_ptr< T > >::GenericClassSharedPtr, AZ::SerializeGenericTypeInfo< AZStd::intrusive_ptr< T > >::GenericClassIntrusivePtr, AZ::SerializeGenericTypeInfo< AZStd::unique_ptr< T, Deleter > >::GenericClassUniquePtr, AZ::SerializeGenericTypeInfo< AZStd::optional< T > >::GenericClassOptional, and AZ::SerializeGenericTypeInfo< ConfigurableStack< StackBaseType > >::GenericConfigurableStackInfo.

◆ GetGenericTypeId()

virtual AZ::TypeId AZ::GenericClassInfo::GetGenericTypeId ( ) const
inlinevirtual

Return the generic Type Id associated with the GenericClassInfo.

Reimplemented in AZ::SerializeGenericTypeInfo< Data::Asset< T > >::GenericClassGenericAsset, AZ::SerializeGenericTypeInfo< AZStd::vector< T, A > >::GenericClassInfoVector, AZ::SerializeGenericTypeInfo< AZStd::fixed_vector< T, Capacity > >::GenericClassInfoFixedVector, AZ::SerializeGenericTypeInfo< AZStd::list< T, A > >::GenericClassInfoList, AZ::SerializeGenericTypeInfo< AZStd::forward_list< T, A > >::GenericClassInfoForwardList, AZ::SerializeGenericTypeInfo< AZStd::array< T, Size > >::GenericClassInfoArray, AZ::SerializeGenericTypeInfo< AZStd::set< K, C, A > >::GenericClassSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_set< K, H, E, A > >::GenericClassUnorderedSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_multiset< K, H, E, A > >::GenericClassUnorderedMultiSet, AZ::SerializeGenericTypeInfo< AZ::Outcome< t_Success, t_Failure > >::GenericClassOutcome, AZ::SerializeGenericTypeInfo< AZStd::pair< T1, T2 > >::GenericClassPair, AZ::SerializeGenericTypeInfo< AZStd::tuple< Types... > >::GenericClassTuple, AZ::SerializeGenericTypeInfo< AZStd::map< K, M, C, A > >::GenericClassMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_map< K, M, H, E, A > >::GenericClassUnorderedMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_multimap< K, M, H, E, A > >::GenericClassUnorderedMultiMap, AZ::SerializeGenericTypeInfo< AZStd::basic_string< E, T, A > >::GenericClassBasicString, AZ::SerializeGenericTypeInfo< AZStd::vector< AZ::u8, A > >::GenericClassByteStream, AZ::SerializeGenericTypeInfo< AZStd::bitset< NumBits > >::GenericClassBitSet, AZ::SerializeGenericTypeInfo< AZStd::shared_ptr< T > >::GenericClassSharedPtr, AZ::SerializeGenericTypeInfo< AZStd::intrusive_ptr< T > >::GenericClassIntrusivePtr, AZ::SerializeGenericTypeInfo< AZStd::unique_ptr< T, Deleter > >::GenericClassUniquePtr, AZ::SerializeGenericTypeInfo< AZStd::optional< T > >::GenericClassOptional, and AZ::SerializeGenericTypeInfo< ConfigurableStack< StackBaseType > >::GenericConfigurableStackInfo.

◆ GetLegacySpecializedTypeId()

virtual AZ::TypeId AZ::GenericClassInfo::GetLegacySpecializedTypeId ( ) const
inlinevirtual

Returns the legacy specialized type id which removed the pointer types from templates when calculating type ids. i.e Typeids for AZStd::vector<AZ::Entity> and AZStd::vector<AZ::Entity*> are the same for legacy ids

Reimplemented in AZ::SerializeGenericTypeInfo< AZStd::vector< T, A > >::GenericClassInfoVector.

◆ GetSpecializedTypeId()

virtual AZ::TypeId AZ::GenericClassInfo::GetSpecializedTypeId ( ) const
pure virtual

By default returns AzTypeInfo<ValueType>::Uuid.

Implemented in AZ::SerializeGenericTypeInfo< Data::Asset< T > >::GenericClassGenericAsset, AZ::SerializeGenericTypeInfo< AZStd::vector< T, A > >::GenericClassInfoVector, AZ::SerializeGenericTypeInfo< AZStd::fixed_vector< T, Capacity > >::GenericClassInfoFixedVector, AZ::SerializeGenericTypeInfo< AZStd::list< T, A > >::GenericClassInfoList, AZ::SerializeGenericTypeInfo< AZStd::forward_list< T, A > >::GenericClassInfoForwardList, AZ::SerializeGenericTypeInfo< AZStd::array< T, Size > >::GenericClassInfoArray, AZ::SerializeGenericTypeInfo< AZStd::set< K, C, A > >::GenericClassSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_set< K, H, E, A > >::GenericClassUnorderedSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_multiset< K, H, E, A > >::GenericClassUnorderedMultiSet, AZ::SerializeGenericTypeInfo< AZ::Outcome< t_Success, t_Failure > >::GenericClassOutcome, AZ::SerializeGenericTypeInfo< AZStd::pair< T1, T2 > >::GenericClassPair, AZ::SerializeGenericTypeInfo< AZStd::tuple< Types... > >::GenericClassTuple, AZ::SerializeGenericTypeInfo< AZStd::map< K, M, C, A > >::GenericClassMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_map< K, M, H, E, A > >::GenericClassUnorderedMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_multimap< K, M, H, E, A > >::GenericClassUnorderedMultiMap, AZ::SerializeGenericTypeInfo< AZStd::basic_string< E, T, A > >::GenericClassBasicString, AZ::SerializeGenericTypeInfo< AZStd::vector< AZ::u8, A > >::GenericClassByteStream, AZ::SerializeGenericTypeInfo< AZStd::bitset< NumBits > >::GenericClassBitSet, AZ::SerializeGenericTypeInfo< AZStd::shared_ptr< T > >::GenericClassSharedPtr, AZ::SerializeGenericTypeInfo< AZStd::intrusive_ptr< T > >::GenericClassIntrusivePtr, AZ::SerializeGenericTypeInfo< AZStd::unique_ptr< T, Deleter > >::GenericClassUniquePtr, AZ::SerializeGenericTypeInfo< AZStd::optional< T > >::GenericClassOptional, and AZ::SerializeGenericTypeInfo< ConfigurableStack< StackBaseType > >::GenericConfigurableStackInfo.

◆ Reflect()

virtual void AZ::GenericClassInfo::Reflect ( SerializeContext )
pure virtual

Register the generic class info using the SerializeContext.

Implemented in AZ::SerializeGenericTypeInfo< Data::Asset< T > >::GenericClassGenericAsset, AZ::SerializeGenericTypeInfo< AZStd::vector< T, A > >::GenericClassInfoVector, AZ::SerializeGenericTypeInfo< AZStd::fixed_vector< T, Capacity > >::GenericClassInfoFixedVector, AZ::SerializeGenericTypeInfo< AZStd::list< T, A > >::GenericClassInfoList, AZ::SerializeGenericTypeInfo< AZStd::forward_list< T, A > >::GenericClassInfoForwardList, AZ::SerializeGenericTypeInfo< AZStd::array< T, Size > >::GenericClassInfoArray, AZ::SerializeGenericTypeInfo< AZStd::set< K, C, A > >::GenericClassSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_set< K, H, E, A > >::GenericClassUnorderedSet, AZ::SerializeGenericTypeInfo< AZStd::unordered_multiset< K, H, E, A > >::GenericClassUnorderedMultiSet, AZ::SerializeGenericTypeInfo< AZ::Outcome< t_Success, t_Failure > >::GenericClassOutcome, AZ::SerializeGenericTypeInfo< AZStd::pair< T1, T2 > >::GenericClassPair, AZ::SerializeGenericTypeInfo< AZStd::tuple< Types... > >::GenericClassTuple, AZ::SerializeGenericTypeInfo< AZStd::map< K, M, C, A > >::GenericClassMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_map< K, M, H, E, A > >::GenericClassUnorderedMap, AZ::SerializeGenericTypeInfo< AZStd::unordered_multimap< K, M, H, E, A > >::GenericClassUnorderedMultiMap, AZ::SerializeGenericTypeInfo< AZStd::basic_string< E, T, A > >::GenericClassBasicString, AZ::SerializeGenericTypeInfo< AZStd::vector< AZ::u8, A > >::GenericClassByteStream, AZ::SerializeGenericTypeInfo< AZStd::bitset< NumBits > >::GenericClassBitSet, AZ::SerializeGenericTypeInfo< AZStd::shared_ptr< T > >::GenericClassSharedPtr, AZ::SerializeGenericTypeInfo< AZStd::intrusive_ptr< T > >::GenericClassIntrusivePtr, AZ::SerializeGenericTypeInfo< AZStd::unique_ptr< T, Deleter > >::GenericClassUniquePtr, AZ::SerializeGenericTypeInfo< AZStd::optional< T > >::GenericClassOptional, and AZ::SerializeGenericTypeInfo< ConfigurableStack< StackBaseType > >::GenericConfigurableStackInfo.


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