Lumiera  0.pre.03
»edit your freedom«
typed-id.hpp File Reference

Go to the source code of this file.

Description

Frontend for a registration service to associate object identities, symbolic identifiers and types.

For maintaining persistent objects, generally an unique object ID is desirable. Within Lumiera, we employ 128 hash-IDs LUID. But hash-IDs arn't self explanatory for human readers and expressive when used for testing, configuration and rules. A symbolic ID reads much better for this purpose. This registration service is used to bridge this gap, allowing for symbolic lookup of objects with known type and for enumeration of all objects of a specific type.

Note
as of 4/2010 this is an experimental setup and implemented just enough to work out the interfaces. Ichthyo expects this registration service to play a crucial role when it comes to integrating a real resolution engine (prolog). For now, the only interesting point is how to handle the automatic registration.
Todo:
and as of 2016, we acknowledge the importance of this approach, just the topic is deferred for now and will be picked up later...
See also
configrules.hpp
typed-lookup.cpp corresponding implementation
typed-id-test.cpp

Definition in file typed-id.hpp.

#include "lib/error.hpp"
#include "lib/symbol.hpp"
#include <memory>

Classes

class  TypedID::Link< TY >
 Mixin for automatic TypedID registration. More...
 
class  TypedID::Link< TY >
 Mixin for automatic TypedID registration. More...
 
class  TypedID
 
class  TypeHandlerXX< TY >
 Adapter for using this type as a primary type within Lumiera's Steam-Layer. More...
 

Functions

 LUMIERA_ERROR_DECLARE (MISSING_INSTANCE)
 Existing ID registration without associated instance.
 

Namespaces

 lumiera
 Lumiera public interface.
 
 steam
 Steam-Layer implementation namespace root.
 
 steam::asset
 The asset subsystem of the Steam-Layer.
 

Class Documentation

◆ steam::asset::TypedID

class steam::asset::TypedID
+ Collaboration diagram for TypedID: