Trait

de.sciss.lucre.confluent

Sys

Related Doc: package confluent

Permalink

trait Sys[S <: Sys[S]] extends stm.Sys[S]

This is analogous to a ConfluentLike trait. Since there is only one system in LucreConfluent, it was decided to just name it confluent.Sys.

S

the implementing system

Linear Supertypes
stm.Sys[S], Closeable, AutoCloseable, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Sys
  2. Sys
  3. Closeable
  4. AutoCloseable
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final type Acc = Access[S]

    Permalink

    The path access type for objects if they carry a temporal trace.

    The path access type for objects if they carry a temporal trace. This is used by confluently persistent systems, while it is typically Unit for ephemeral systems.

    Definition Classes
    SysSys
  2. abstract type Context <: AnyRef

    Permalink
    Definition Classes
    Sys
  3. abstract type D <: DurableLike[D]

    Permalink
  4. abstract type I <: InMemoryLike[I]

    Permalink
    Definition Classes
    SysSys
  5. final type ID = Identifier[S]

    Permalink

    The identifier type of the system.

    The identifier type of the system. This is an opaque type about which the user only knows that it uniquely identifies and object (or an object along with its access path in the confluent case). It is thus valid to assume that two objects are equal if their identifiers are equal.

    Definition Classes
    SysSys
  6. abstract type Tx <: Txn[S]

    Permalink

    The transaction type of the system.

    The transaction type of the system.

    Definition Classes
    SysSys
  7. final type Var[A] = confluent.Var[S, A]

    Permalink

    The variable type of the system.

    The variable type of the system. Variables allow transactional storage and retrieval both of immutable and mutable values. Specific systems may extend the minimum capabilities described by the Var trait.

    Definition Classes
    SysSys

Abstract Value Members

  1. abstract def close(): Unit

    Permalink

    Closes the underlying database (if the system is durable).

    Closes the underlying database (if the system is durable). The STM cannot be used beyond this call. An in-memory system should have a no-op implementation.

    Definition Classes
    Sys → Closeable → AutoCloseable
  2. abstract def cursorRoot[A, B](init: (S.Tx) ⇒ A)(result: (S.Tx) ⇒ (A) ⇒ B)(implicit serializer: Serializer[S.Tx, Access[S], A]): (confluent.Var[S, A], B)

    Permalink

    Initializes the data structure, by either reading an existing entry or generating the root entry with the init function.

    Initializes the data structure, by either reading an existing entry or generating the root entry with the init function. The method than allows the execution of another function within the same transaction, passing it the data structure root of type A. This is typically used to generate access mechanisms, such as extracting a cursor from the data structure, or instantiating a new cursor. The method then returns both the access point to the data structure and the result of the second function.

    A

    type of data structure

    B

    type of result from the second function. typically this is an stm.Cursor[S]

    init

    a function to initialize the data structure (if the database is fresh)

    result

    a function to process the data structure

    serializer

    a serializer to read or write the data structure

    returns

    the access to the data structure along with the result of the second function.

  3. abstract def debugPrintIndex(index: Access[S])(implicit tx: S.Tx): String

    Permalink
  4. abstract def durable: D

    Permalink
  5. abstract def durableTx(tx: S.Tx): D.Tx

    Permalink
  6. abstract def inMemory: I

    Permalink
    Definition Classes
    Sys
  7. abstract def inMemoryTx(tx: S.Tx): I.Tx

    Permalink
    Definition Classes
    Sys
  8. abstract def newCursor(init: Access[S])(implicit tx: S.Tx): Cursor[S, D]

    Permalink
  9. abstract def newCursor()(implicit tx: S.Tx): Cursor[S, D]

    Permalink
  10. abstract def readCursor(in: DataInput)(implicit tx: S.Tx): Cursor[S, D]

    Permalink
  11. abstract def readPath(in: DataInput): Access[S]

    Permalink
  12. abstract def root[A](init: (S.Tx) ⇒ A)(implicit serializer: Serializer[S.Tx, S.Acc, A]): stm.Source[S.Tx, A]

    Permalink

    Reads the root object representing the stored data structure, or provides a newly initialized one via the init argument, if no root has been stored yet.

    Reads the root object representing the stored data structure, or provides a newly initialized one via the init argument, if no root has been stored yet.

    Definition Classes
    Sys
  13. abstract def rootWithDurable[A, B](confluent: (S.Tx) ⇒ A)(durable: (D.Tx) ⇒ B)(implicit aSer: Serializer[S.Tx, Access[S], A], bSer: Serializer[D.Tx, Unit, B]): (stm.Source[S.Tx, A], B)

    Permalink

    Initializes the data structure both with a confluently persisted and an ephemeral-durable value.

    Initializes the data structure both with a confluently persisted and an ephemeral-durable value.

    A

    type of confluent data structure

    B

    type of ephemeral data structure

    confluent

    a function that provides the initial confluent data (if the database is fresh)

    durable

    a function that provides the initial ephemeral data (if the database is fresh)

    aSer

    a serializer to read or write the confluent data structure

    bSer

    a serializer to read or write the ephemeral data structure

    returns

    a tuple consisting of a handle to the confluent structure and the ephemeral datum. The ephemeral datum, although written to disk, does not require an stm.Source because D#Acc is Unit and does not need refresh.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  16. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from stm.Sys[S]

Inherited from Closeable

Inherited from AutoCloseable

Inherited from AnyRef

Inherited from Any

Ungrouped