kanzi::ResourceLoaderFactory Class Reference

Factory for resource loader tasks. More...

#include <kanzi/core.ui/resource/resource_loader_factory.hpp>

Public Types

typedef ResourceSharedPtr(* LoaderCallback) (Domain *, string_view, KzbFile *, unique_ptr< ReadOnlyMemoryFile >)
 
typedef map< const Metaclass *, LoaderCallbackLoaderCallbackDictionary
 
typedef ResourceManager::LoadTaskSharedPtr(* LoadTaskFactoryFunction) (string_view, KzbFile *, unique_ptr< ReadOnlyMemoryFile >)
 
typedef map< const Metaclass *, LoadTaskFactoryFunctionLoadTaskFactoryDictionary
 

Public Member Functions

 ResourceLoaderFactory ()
 Constructor. More...
 
LoaderCallback tryGetLoaderCallback (const Metaclass *metaclass) const
 Get loader callback for given metaclass. More...
 
LoaderCallback getLoaderCallback (const Metaclass *metaclass) const
 Get loader callback for given metaclass. More...
 
bool hasLoaderCallback (const Metaclass *metaclass) const
 Check if loader callback has been registered. More...
 
void registerLoaderCallback (const Metaclass *metaclass, LoaderCallback callback)
 Register loader callback for a metaclass. More...
 
template<typename T >
void registerLoaderCallback ()
 Shorthand for registering loader callback for given type. More...
 
LoadTaskFactoryFunction tryGetLoadTaskFactoryFunction (const Metaclass *metaclass) const
 Get load task factory function for given metaclass. More...
 
LoadTaskFactoryFunction getLoadTaskFactoryFunction (const Metaclass *metaclass) const
 Get load task factory function for given metaclass. More...
 
bool hasLoadTaskFactoryFunction (const Metaclass *metaclass) const
 Check if load task factory function has been registered. More...
 
void registerLoadTaskFactoryFunction (const Metaclass *metaclass, LoadTaskFactoryFunction func)
 Register load task factory function for given metaclass. More...
 
template<typename T >
void registerLoadTask ()
 Shorthand for registering a generic load task factory function. More...
 
template<typename T >
void registerResourceLoadTask ()
 Shorthand for registering load task factory function for a resource. More...
 

Detailed Description

Factory for resource loader tasks.

Tasks for resource loading are registered to the factory, that creates them as needed.

Existing resources may use default tasks and potentially override #loadFromKZB() method. New types of resources with new base classes require a new load task.

Member Typedef Documentation

typedef ResourceSharedPtr(* kanzi::ResourceLoaderFactory::LoaderCallback) (Domain *, string_view, KzbFile *, unique_ptr< ReadOnlyMemoryFile >)
typedef ResourceManager::LoadTaskSharedPtr(* kanzi::ResourceLoaderFactory::LoadTaskFactoryFunction) (string_view, KzbFile *, unique_ptr< ReadOnlyMemoryFile >)

Constructor & Destructor Documentation

kanzi::ResourceLoaderFactory::ResourceLoaderFactory ( )
explicit

Constructor.

Member Function Documentation

LoaderCallback kanzi::ResourceLoaderFactory::tryGetLoaderCallback ( const Metaclass metaclass) const
inline

Get loader callback for given metaclass.

Returns empty function pointer (0) if metaclass has not been registered.

Parameters
metaclassMetaclass to get callback for.
Returns
Loader callback.
LoaderCallback kanzi::ResourceLoaderFactory::getLoaderCallback ( const Metaclass metaclass) const
inline

Get loader callback for given metaclass.

Throws an error if metaclass has not been registered.

Parameters
metaclassMetaclass to get callback for.
Returns
Loader callback.
bool kanzi::ResourceLoaderFactory::hasLoaderCallback ( const Metaclass metaclass) const
inline

Check if loader callback has been registered.

Parameters
metaclassMetaclass to check.
Returns
True if registered, false if not.
void kanzi::ResourceLoaderFactory::registerLoaderCallback ( const Metaclass metaclass,
LoaderCallback  callback 
)
inline

Register loader callback for a metaclass.

Parameters
metaclassMetaclass to register for.
callbackLoader callback.
template<typename T >
void kanzi::ResourceLoaderFactory::registerLoaderCallback ( )
inline

Shorthand for registering loader callback for given type.

LoadTaskFactoryFunction kanzi::ResourceLoaderFactory::tryGetLoadTaskFactoryFunction ( const Metaclass metaclass) const
inline

Get load task factory function for given metaclass.

Returns empty function pointer (0) if metaclass has not been registered.

Parameters
Metaclassto get load task factory function for.
Returns
Load task factory function.
LoadTaskFactoryFunction kanzi::ResourceLoaderFactory::getLoadTaskFactoryFunction ( const Metaclass metaclass) const
inline

Get load task factory function for given metaclass.

Throws an error if metaclass has not been registered.

Parameters
Metaclassto get load task factory function for.
Returns
Load task factory function.
bool kanzi::ResourceLoaderFactory::hasLoadTaskFactoryFunction ( const Metaclass metaclass) const
inline

Check if load task factory function has been registered.

Parameters
metaclassMetaclass to check.
Returns
True if registered, false if not.
void kanzi::ResourceLoaderFactory::registerLoadTaskFactoryFunction ( const Metaclass metaclass,
LoadTaskFactoryFunction  func 
)
inline

Register load task factory function for given metaclass.

Parameters
metaclassMetaclass to register for.
funcLoad task factory function.
template<typename T >
void kanzi::ResourceLoaderFactory::registerLoadTask ( )
inline

Shorthand for registering a generic load task factory function.

template<typename T >
void kanzi::ResourceLoaderFactory::registerResourceLoadTask ( )
inline

Shorthand for registering load task factory function for a resource.


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