An Elem
is any type that is globally registered
via Elem.addType
and can be de-serialized through Elem.read
.
An identifier map is basically a transactional map whose keys are system identifiers.
An identifier map is basically a transactional map whose keys are system identifiers.
However, there are two important aspects: First, the map is always ephemeral
(but might be still durable!), even for a confluently persistent system. Second,
for systems whose identifiers constitute temporal traces (confluently persistent
system), lookup (via get
, contains
etc.) finds _any_ value stored for the
current version or any older version. That is to say, in a confluently persistent
system, it looks up the most recent entry for the key. It is therefore a useful
tool to map system entities to ephemeral live views.
the underlying system's identifier type
the underlying system's transaction type
the values stored at the keys. Unit
can be used if only set
functionality is needed.
A thin in-memory (non-durable) wrapper around Scala-STM.
An Obj
is a type of element that has an S#ID
identifier and
an attribute map.
An Obj
is a type of element that has an S#ID
identifier and
an attribute map. It can be the origin of event dispatch.
A sink is a transactional write access to a value
A source is a transactional read access to a value
A system in LucreSTM describes a particular mode of representing values in time and of persisting values to disk.
A system in LucreSTM describes a particular mode of representing values in time and of
persisting values to disk. The Sys
trait contains types for variables, identifiers,
access paths, and transactions which are unique to each system (such as ephemeral in-memory,
confluently persistent etc.).
the representation type of the system
This is a minimal trait for any type of transactions that wrap an underlying Scala-STM transaction.
A transactional variable is an identifiable cell allowing the reading and writing of values