34#ifndef STEAM_INTERFACE_ASSETMANAGER_H
35#define STEAM_INTERFACE_ASSETMANAGER_H
46#include <boost/utility.hpp>
Steam-Layer Interface: Assets.
Access point to singletons and other kinds of dependencies designated by type.
Helper to abstract creation and lifecycle of a dependency.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Facade for the Asset subsystem.
static void destroy(Asset *aa)
deleter function used by the Asset smart pointers to delete Asset objects
static ID< Asset > getID(const Asset::Ident &)
provide the unique ID for given Asset::Ident tuple
list< PcAsset > listContent() const
extract a sorted list of all registered Assets
void clear()
deregister and evict all known Assets.
static lib::P< KIND > wrap(const KIND &asset)
retrieve the registered smart-ptr for any asset
lib::P< KIND > getAsset(const ID< KIND > &id)
find and return corresponding object
static ID< KIND > reg(KIND *obj, const Asset::Ident &idi)
registers an asset object in the internal DB, providing its unique key.
static lib::Depend< AssetManager > instance
get at the system-wide asset manager instance.
void remove(IDA id)
remove the given asset from the internal DB.
Superinterface describing especially bookkeeping properties.
Asset(const Ident &idi)
Asset is a Interface class; usually, objects of concrete subclasses are created via specialised Facto...
Tree like classification of Assets.
Implementation of the registry holding all Asset instances known to the Asset Manager subsystem.
thin wrapper around a size_t hash ID used as primary key for all Asset objects.
Any copy and copy construction prohibited.
Singleton services and Dependency Injection.
#define LUMIERA_ERROR_DECLARE(err)
Forward declare an error constant.
Lumiera error handling (C++ interface).
Lumiera public interface.
The asset subsystem of the Steam-Layer.
Steam-Layer implementation namespace root.
a POD comprised of all the information sufficiently identifying any given Asset.