Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Bare symbolic and hash ID used for accounting of asset like entries.
This ID can be used to register instances with an accounting table, without all the overhead of creating individual assets for each entry. The datafields in the symbolic part of the ID are similar to the asset identity tuple; the idea is to promote individual entries to full fledged assets on demand. Alongside with the symbolic identity, which can be reduced to just a Symbol and (compile time) type information, we store the derived hash value as LUID.
Definition in file entry-id.hpp.
#include "lib/error.hpp"
#include "lib/hash-indexed.hpp"
#include "lib/idi/genfunc.hpp"
#include "lib/util.hpp"
#include <boost/functional/hash.hpp>
#include <boost/operators.hpp>
#include <string>
Classes | |
class | BareEntryID |
type erased baseclass for building a combined hash and symbolic ID. More... | |
struct | EntryID< TY > |
typed symbolic and hash ID for asset-like position accounting. More... | |
struct | EntryID< TY > |
typed symbolic and hash ID for asset-like position accounting. More... | |
struct | RandID |
Entry-ID with a symbolic tag but just a plain random hash part. More... | |
struct | BareEntryID::UseEmbeddedHash |
using BareEntryID derived objects as keys within std::unordered_map More... | |
Functions | |
LuidH | buildHash (string const &sym, HashVal seed=0) |
build up a hash value, packaged as LUID. More... | |
bool | operator== (BareEntryID const &i1, BareEntryID const &i2) |
Variables | |
const size_t | KNUTH_MAGIC = 2654435761 |
lousy old tinkerer's trick: hash values with poor distribution can be improved by spreading the input with something close to the golden ratio. More... | |
Namespaces | |
lib | |
Implementation namespace for support and library code. | |
lib::idi | |
Identification Schemes. | |