Lumiera  0.pre.03
»edit your freedom«
asset/meta.hpp File Reference

Go to the source code of this file.

Description

Internal and organisational metadata.

Some internally created data elements rather serve the purpose of controlling the way the application behaves, as opposed to organising the structure of the data the user works with. Lumiera exposes this self-referential control and customisation aspects as a special kind of Asset. Examples being types, scales and quantisation grids, decision rules, control data stores (automation data), annotations attached to labels, inventory entities etc.

For the different Kinds of Assets, we use sub-interfaces inheriting from the general Asset interface. To be able to get asset::Meta instances directly from the AssetManager, we define a specialisation of the Asset ID.

using meta assets

The usage pattern of asset::Meta entities differs from the other assets, insofar they aren't created as individual entries, rather added as part of a larger scale configuration activity, or they are derived from category. The latter fits in with a prototype-like approach; initially, the individual entry just serves to keep track of a categorisation, while at some point, such a link into a describing category may evolve into a local differentiation of some settings (copy on modification).

To cope with this special usage, the meta assets are defined to be immutable. They are created from a descriptor, which stands for a category or sub-category and can be another already existing asset::Meta (inheriting from meta::Descriptor) Generally this yields a Builder object, which can be used for outfitting the new or changed metadata entry, finally committing this builder to yield a new asset::Meta (which, in case of a mutation, might supersede an existing one).

See also
asset.hpp explanation of assets in general
MetaFactory creating concrete asset::Meta instances

Definition in file asset/meta.hpp.

Classes

struct  Builder< MA >
 Building and configuring a meta asset. More...
 
class  Descriptor
 Interface: the unspecific, reflective base of meta assets. More...
 
class  ID< Meta >
 
class  Meta
 key abstraction: metadata, parametrisation, customisation and similar organisational traits. More...
 
class  MetaFactory
 Factory specialised for creating Metadata Asset objects. More...
 

Typedefs

typedef lib::P< Meta > PMeta
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::asset
 The asset subsystem of the Steam-Layer.