package lucre
- Alphabetic
- Public
- Protected
Package Members
Type Members
- trait Adjunct extends Writable
- trait AnyExec extends Exec[AnyExec]
- abstract final class AnyTxn extends Txn[AnyTxn]
- trait Artifact[T <: Txn[T]] extends Expr[T, Value]
An artifact is a file on an external storage.
- trait ArtifactLocation[T <: Txn[T]] extends Expr[T, Value]
An artifact location is a directory on an external storage.
- trait ArtifactPlatform extends AnyRef
- trait Base extends Closeable
The
Base
trait is a pre-stage tostm.Sys
, without introducing peer STM transactions.The
Base
trait is a pre-stage tostm.Sys
, without introducing peer STM transactions. It can thus be used to build purely imperative non-transactional systems. - trait BiGroup[T <: Txn[T], A] extends Obj[T] with Publisher[T, Update[T, A, BiGroup[T, A]]]
- trait BiPin[T <: Txn[T], A] extends Obj[T] with Publisher[T, Update[T, A, BiPin[T, A]]]
- trait BooleanObj[T <: Txn[T]] extends Expr[T, Boolean]
- trait Caching extends AnyRef
A marker trait for events that maintain a cache.
A marker trait for events that maintain a cache. Events mixing in this trait are guaranteed to participate in the
pullUpdate
phase, even if no live observer is attached to them. - trait Confluent extends ConfluentLike[lucre.Confluent.Txn]
- trait ConfluentLike[Tx <: lucre.confluent.Txn[Tx]] extends lucre.confluent.Sys
- trait Copy[In <: Txn[In], Out <: Txn[Out]] extends AnyRef
- trait Cursor[T <: Exec[T]] extends AnyRef
- trait DataStore extends Closeable
- trait Disposable[-T] extends AnyRef
- trait DoubleObj[T <: Txn[T]] extends Expr[T, Double]
- trait DoubleVector[T <: Txn[T]] extends Expr[T, IndexedSeq[Double]]
- trait Durable extends DurableLike[lucre.Durable.Txn]
- trait DurableLike[Tx <: lucre.DurableLike.Txn[Tx]] extends Sys with Cursor[Tx]
- trait Elem[T <: Txn[T]] extends Form[T] with Writable with Disposable[T] with Publisher[T, Any]
An
Elem
is any type that is globally registered viaElem.addType
and can be de-serialized throughElem.read
. - trait Event[T <: Txn[T], +A] extends EventLike[T, A] with Writable
Event
is not sealed in order to allow you define traits inheriting from it, while the concrete implementations should extend either ofEvent.Constant
orEvent.Node
(which itself is sealed and split intoEvent.Invariant
andEvent.Mutating
. - trait EventLike[T <: Txn[T], +A] extends Observable[T, A]
- trait Exec[T <: Exec[T]] extends AnyRef
- trait Expr[T <: Txn[T], +A] extends ExprLike[T, A] with Obj[T] with Publisher[T, Change[A]]
An expression is a computation that reduces to a single value of type
A
.An expression is a computation that reduces to a single value of type
A
. Expressions can be understood as data-flow variables. When a tree is composed, a change in the root of the tree propagates through to the leaves in the form of an emittedChange
event that carries the old and new value (according to the particular node of the tree).Basic expression types are
Expr.Const
- it simply wraps a constant value and thus will never change or fire an event - andExpr.Var
which can be thought of as a mutable variable carrying a peer expression. When the variable assignment changes, the expression currently held is evaluated and propagated as an event. Intermediate nodes or expressions might modify the value, such as a binary operator (e.g., an integer expression that sums two input integer expressions). - trait ExprLike[T <: Exec[T], +A] extends Form[T]
This is the current compromise for unifying
Ex
/IExpr
andExpr
in terms of their usability throughrunWith
vs.This is the current compromise for unifying
Ex
/IExpr
andExpr
in terms of their usability throughrunWith
vs.obj.attr
. - trait Folder[T <: Txn[T]] extends Modifiable[T, Obj[T]]
- trait Form[T] extends AnyRef
Any form parametrized in a
Base
system.Any form parametrized in a
Base
system. This trait allows us to pattern match against heterogeneous objects whose only common feature is that they share the system. - trait IChangeEvent[T <: Exec[T], +A] extends IEvent[T, Change[A]]
- trait IChangePublisher[T <: Exec[T], +A] extends IPublisher[T, Change[A]]
- trait IEvent[T <: Exec[T], +A] extends Observable[T, A]
In-memory (non-serializable) event.
- trait IExpr[T <: Exec[T], +A] extends ExprLike[T, A] with IChangePublisher[T, A] with Disposable[T]
- trait IPublisher[T <: Exec[T], +A] extends AnyRef
- trait IPull[T <: Exec[T]] extends AnyRef
- trait ITargets[T <: Exec[T]] extends AnyRef
Interconnection management for in-memory events.
Interconnection management for in-memory events. A centralized instance that combines the functionality of
Targets
withReactionMap
. - trait Ident[T <: Exec[T]] extends Disposable[T] with Writable
- trait IdentMap[T <: Exec[T], A] extends Disposable[T]
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.- T
the underlying system's transaction type
- A
the values stored at the keys.
Unit
can be used if only set functionality is needed.
- trait Identified[T <: Exec[T]] extends AnyRef
- trait InMemory extends InMemoryLike[lucre.InMemory.Txn]
A thin in-memory (non-durable) wrapper around Scala-STM.
- trait InMemoryLike[Tx <: lucre.InMemoryLike.Txn[Tx]] extends Sys with Cursor[Tx]
- trait IntObj[T <: Txn[T]] extends Expr[T, Int]
- trait IntVector[T <: Txn[T]] extends Expr[T, IndexedSeq[Int]]
- trait ListObj[T <: Txn[T], A] extends Obj[T] with Publisher[T, Update[T, A, ListObj[T, A]]]
An observable linked list with fast
head
andlast
operations.An observable linked list with fast
head
andlast
operations. This is the read-only layer, seeList.Modifiable
for a mutable list.The list will report insertions and deletions.
- A
the element type of the list
- trait LongObj[T <: Txn[T]] extends Expr[T, Long]
- trait MapObj[T <: Txn[T], K, Repr[~ <: Txn[~]] <: Form[~]] extends MapObjLike[T, K, Repr[T]] with Obj[T] with Publisher[T, Update[T, K, Repr]]
- trait MapObjLike[T <: Exec[T], K, V] extends Disposable[T]
- trait Mutable[T <: Exec[T]] extends Identified[T] with Writable with Disposable[T]
- trait Obj[T <: Txn[T]] extends Elem[T] with Mutable[T]
An
Obj
is a type of element that has anS#Id
identifier and an attribute map.An
Obj
is a type of element that has anS#Id
identifier and an attribute map. It can be the origin of event dispatch. - trait Observable[Tx, +A] extends AnyRef
- trait Observer[T <: Exec[T], -A] extends Disposable[T]
- trait Plain extends Base with Cursor[Plain] with Exec[Plain]
- trait ProductWithAdjuncts extends Product
- trait Publisher[T <: Txn[T], +A] extends AnyRef
- trait Pull[T <: Txn[T]] extends AnyRef
- trait Random[-T] extends AnyRef
A transactional pseudo-random number generator which behaves numerically like
java.util.Random
. - trait RandomObj[T <: Exec[T]] extends Random[T] with Mutable[T]
A transactional pseudo-random number generator which behaves numerically like
java.util.Random
. - trait ReactionMap[T <: Txn[T]] extends AnyRef
- trait Ref[-T, A] extends Source[T, A] with Sink[T, A]
- trait RefMap[T <: Exec[T], K, V] extends AnyRef
- trait RefSet[T <: Exec[T], A] extends AnyRef
- trait Sink[-T, -A] extends AnyRef
- trait Source[-T, +A] extends AnyRef
- trait SpanLikeObj[T <: Txn[T]] extends Expr[T, SpanLike]
- trait SpanObj[T <: Txn[T]] extends Expr[T, Span]
- trait StringObj[T <: Txn[T]] extends Expr[T, String]
- trait Sys extends Base
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.). - trait TOrdered[-Tx, -A] extends AnyRef
- trait TOrdering[-Tx, A] extends AnyRef
- trait Txn[T <: Txn[T]] extends Exec[T] with TxnLike
- trait TxnLike extends AnyRef
This is a minimal trait for any type of transactions that wrap an underlying Scala-STM transaction.
- trait Var[-T, A] extends Ref[T, A] with Writable with Disposable[T]
- trait Workspace[T <: Txn[T]] extends Disposable[T]
Value Members
- object Adjunct
These are basically our "type classes" with the ability to serialize and deserialize.
These are basically our "type classes" with the ability to serialize and deserialize. They are supported through
ProductHasAdjuncts
which is recognized in serialization. - object Artifact extends Type with ArtifactPlatform
- object ArtifactLocation extends ExprTypeImpl[Value, ArtifactLocation]
- object BiGroup extends Type
- object BiPin extends Type
- object BooleanObj extends ExprTypeImpl[Boolean, BooleanObj]
- case object BuildInfo extends Product with Serializable
This object was generated by sbt-buildinfo.
- object Confluent
- object Copy
- object Cursor
- object DataStore
- object Disposable
- object DoubleObj extends ExprTypeImpl[Double, DoubleObj]
- object DoubleVector extends ExprTypeImpl[IndexedSeq[Double], DoubleVector]
- object Durable
- object DurableLike
- object Elem
- object Event
- object Expr
- object Folder extends Type
- object GraphemeHasIterator
Cheesy work-around for Lucre #4 -- https://github.com/Sciss/Lucre/issues/4
- object IExpr
- object IPull
- object IPush
- object ITargets
- object Ident
- object InMemory
- object InMemoryLike
- object InTxnRandom
- object IntObj extends ExprTypeImpl[Int, IntObj]
- object IntVector extends ExprTypeImpl[IndexedSeq[Int], IntVector]
- object ListObj extends Type
- object Log
- object LongObj extends ExprTypeImpl[Long, LongObj]
- object MapObj extends Type
- object MapObjLike
- object Obj
- object Observable
- object Observer
- object Plain
- object Push
- object Random
Like java's random, but within a transactional cell.
- object RandomObj
- object ReactionMap
- object SpanLikeObj extends ExprTypeImpl[SpanLike, SpanLikeObj]
- object SpanObj extends ExprTypeImpl[Span, SpanObj]
- object StringObj extends ExprTypeImpl[String, StringObj]
- object TOrdering
- object Txn
- object Workspace