Open 3D Engine Compression Gem 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.
Compression::DecompressionRegistrarInterface Class Referenceabstract

Inherited by Compression::DecompressionRegistrarImpl.

Public Types

using VisitDecompressionInterfaceCallback = AZStd::function< bool(IDecompressionInterface &)>
 

Public Member Functions

 AZ_TYPE_INFO_WITH_NAME_DECL (DecompressionRegistrarInterface)
 
 AZ_RTTI_NO_TYPE_INFO_DECL ()
 
virtual void VisitDecompressionInterfaces (const VisitDecompressionInterfaceCallback &) const =0
 Invokes the supplied visitor for each register decompression interface that is non-nullptr.
 
virtual AZ::Outcome< void, AZStd::unique_ptr< IDecompressionInterface > > RegisterDecompressionInterface (CompressionAlgorithmId compressionAlgorithmId, AZStd::unique_ptr< IDecompressionInterface > decompressionInterface)=0
 
virtual bool RegisterDecompressionInterface (CompressionAlgorithmId compressionAlgorithmId, IDecompressionInterface &decompressionInterface)=0
 
virtual bool UnregisterDecompressionInterface (CompressionAlgorithmId compressionAlgorithmId)=0
 
virtual IDecompressionInterfaceFindDecompressionInterface (CompressionAlgorithmId compressionAlgorithmId) const =0
 
virtual IDecompressionInterfaceFindDecompressionInterface (AZStd::string_view algorithmName) const =0
 
virtual bool IsRegistered (CompressionAlgorithmId compressionAlgorithmId) const =0
 

Member Typedef Documentation

◆ VisitDecompressionInterfaceCallback

Callback function that is invoked for every registered decompression interface return true to indicate that visitation of decompression interfaces should continue returning false halts iteration

Member Function Documentation

◆ FindDecompressionInterface() [1/2]

virtual IDecompressionInterface * Compression::DecompressionRegistrarInterface::FindDecompressionInterface ( AZStd::string_view  algorithmName) const
pure virtual

Queries the decompression interface using the name of the compression algorithm This is slower than the using the compression algorithm ID. Furthermore the algorithm name doesn't have to be unique, so this will return the first compression interface associated with the algorithm name

Parameters
algorithmNameName of the compression algorithm. NOTE: The compression algorithm name is not checked for uniqueness, unlike the algorithm id
Returns
pointer to the decompression interface or nullptr if not found

Implemented in Compression::DecompressionRegistrarImpl.

◆ FindDecompressionInterface() [2/2]

virtual IDecompressionInterface * Compression::DecompressionRegistrarInterface::FindDecompressionInterface ( CompressionAlgorithmId  compressionAlgorithmId) const
pure virtual

Queries the decompression interface with the decompression algorithm Id

Parameters
compressionAlgorithmIdunique Id of decompression interface to query
Returns
pointer to the decompression interface or nullptr if not found

Implemented in Compression::DecompressionRegistrarImpl.

◆ IsRegistered()

virtual bool Compression::DecompressionRegistrarInterface::IsRegistered ( CompressionAlgorithmId  compressionAlgorithmId) const
pure virtual

Return true if there is an decompression interface registered with the specified id

Parameters
compressionAlgorithmIdCompressionAlgorithmId to determine if an decompression interface is registered
Returns
bool indicating if there is an decompression interface with the id registered

Implemented in Compression::DecompressionRegistrarImpl.

◆ RegisterDecompressionInterface() [1/2]

virtual AZ::Outcome< void, AZStd::unique_ptr< IDecompressionInterface > > Compression::DecompressionRegistrarInterface::RegisterDecompressionInterface ( CompressionAlgorithmId  compressionAlgorithmId,
AZStd::unique_ptr< IDecompressionInterface decompressionInterface 
)
pure virtual

Registers decompression interface and takes ownership of it if registration is successful

Parameters
compressionAlgorithmIdUnique id to associate with decompression interface
decompressionInterfacedecompression interface to register
Returns
Success outcome if the decompression interface was successfully registered Otherwise, a failure outcome with the decompression interface is forward back to the caller

Implemented in Compression::DecompressionRegistrarImpl.

◆ RegisterDecompressionInterface() [2/2]

virtual bool Compression::DecompressionRegistrarInterface::RegisterDecompressionInterface ( CompressionAlgorithmId  compressionAlgorithmId,
IDecompressionInterface decompressionInterface 
)
pure virtual

Registers decompression interface, but does not take ownership of it If a decompression interface with a CompressionAlgorithmId is registered that matches the input decompression interface, then registration does not occur

Registers decompression interface, but does not take ownership of it

Parameters
compressionAlgorithmIdUnique id to associate with decompression interface
decompressionInterfacedecompression interface to register
Returns
true if the ICompressionInterface was successfully registered

Implemented in Compression::DecompressionRegistrarImpl.

◆ UnregisterDecompressionInterface()

virtual bool Compression::DecompressionRegistrarInterface::UnregisterDecompressionInterface ( CompressionAlgorithmId  compressionAlgorithmId)
pure virtual

Unregisters the decompression interface with the specified id

Parameters
decompressionAlgorithmIdunique Id that identifies the decompression interface
Returns
true if the unregistration is successful

Implemented in Compression::DecompressionRegistrarImpl.

◆ VisitDecompressionInterfaces()

virtual void Compression::DecompressionRegistrarInterface::VisitDecompressionInterfaces ( const VisitDecompressionInterfaceCallback ) const
pure virtual

Invokes the supplied visitor for each register decompression interface that is non-nullptr.

Implemented in Compression::DecompressionRegistrarImpl.


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