46#ifndef STEAM_INTERFACE_ASSET_H
47#define STEAM_INTERFACE_ASSET_H
75 using std::shared_ptr;
76 using std::static_pointer_cast;
103 operator HashVal()
const {
return hash_; }
174 Ident (
string const& n
176 ,
string const& o =
"lumi"
188 operator string ()
const;
205 virtual operator string ()
const;
293 bool enable (
bool on=
true);
306 return static_pointer_cast<const Asset,A> (subPtr);
316 : std::is_base_of<Asset, A> { };
Definition of Asset categorisation.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Facade for the Asset subsystem.
Superinterface describing especially bookkeeping properties.
const Ident ident
Asset identification tuple.
void defineDependency(PAsset parent)
establish a connection between this and the given parent asset, denoting we are in some way dependent...
bool operator==(Asset const &oa) const
const vector< PAsset > & getParents() const
List of entities this asset depends on or requires to be functional.
void unregister(PAsset &other)
bool isActive() const
weather this asset is switched on and consequently included in the fixture and participates in render...
virtual const ID< Asset > & getID() const
bool enable(bool on=true)
change the enabled status of this asset.
const string longDesc
user visible qualification of the thing, unit or concept represented by this asset.
auto operator<=>(Asset const &oa) const
vector< PAsset > dependants
const vector< PAsset > & getDependant() const
All the other assets requiring this asset to be functional.
const ID< Asset > id
Asset primary key.
virtual void unlink()
release all links to other Asset objects held internally.
set< string > groups
additional classification, selections or departments this asset belongs to.
const string shortDesc
user visible Name-ID.
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.
static ID INVALID
marker constant denoting a NIL asset
Any copy and copy construction prohibited.
Lumiera error handling (C++ interface).
Hash value types and utilities.
This header is for including and configuring NoBug.
size_t HashVal
a STL compatible hash value
The asset subsystem of the Steam-Layer.
lib::P< const Asset > PcAsset
const PcAsset pAsset(shared_ptr< A > const &subPtr)
promote subtype-ptr to PAsset, e.g.
Steam-Layer implementation namespace root.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Customised refcounting smart pointer.
a POD comprised of all the information sufficiently identifying any given Asset.
auto operator<=>(Ident const &oi) const
ordering of Assets is based on the ordering of Ident tuples, descending from Category to origin and f...
asset::Category category
primary tree like classification of the asset.
string name
element ID, comprehensible but sanitised.
bool operator==(Ident const &oi) const
const uint version
version number of the thing or concept represented by this asset.
const string org
origin or authorship id.
type trait for detecting a shared-ptr-to-asset