trait DurablePersistentMap[T <: Txn[T], K] extends AnyRef
Interface for a confluently or partially persistent storing key value map. Keys (type K
) might
be single object identifiers (as the variable storage case), or combined keys
(as in the live map case).
- T
the underlying system's transaction type
- K
the key type
- Alphabetic
- By Inheritance
- DurablePersistentMap
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def get[A](key: K, tx: T)(implicit path: T.Acc, format: TFormat[T, A]): Option[A]
Finds the most recent value for an entity
id
with respect to versionpath
.Finds the most recent value for an entity
id
with respect to versionpath
. If a value is found, it is return along with a suffix suitable for identifier path actualisation.- A
the type of values stored with the entity
- key
the identifier for the object
- tx
the transaction within which the access is performed
- path
the path through which the object has been accessed (the version at which it is read)
- format
the format used to store the entity's values
- returns
None
if no value was found, otherwise aSome
of the tuple consisting of the suffix and the value. The suffix is the access path minus the prefix at which the value was found. However, the suffix overlaps the prefix in that it begins with the tree entering/exiting tuple at which the value was found.
- abstract def getImmutable[A](key: K, tx: T)(implicit path: T.Acc, format: ConstFormat[A]): Option[A]
Finds the most recent value for an entity
id
with respect to versionpath
.Finds the most recent value for an entity
id
with respect to versionpath
.The format given is _non_transactional. This is because this trait bridges confluent and ephemeral world (it may use a durable backend, but the data structures used for storing the confluent graph are themselves ephemeral). If the value
A
requires a transactional serialization, the current approach is to pre-serialize the value into an appropriate format (e.g. a byte array) before calling intoput
. In that case the wrapping structure must be de-serialized after callingget
.- A
the type of values stored with the entity
- key
the identifier for the object
- tx
the transaction within which the access is performed
- path
the path through which the object has been accessed (the version at which it is read)
- format
the format used to store the entity's values
- returns
None
if no value was found, otherwise aSome
of that value.
- abstract def isFresh(key: K, tx: T)(implicit path: T.Acc): Boolean
Note: requires that
path
is non-empty. - abstract def put[A](key: K, value: A, tx: T)(implicit path: T.Acc, format: TFormat[T, A]): Unit
- abstract def putImmutable[A](key: K, value: A, tx: T)(implicit path: T.Acc, format: ConstFormat[A]): Unit
Stores a new value for a given write path.
Stores a new value for a given write path.
The format given is _non_transactional. This is because this trait bridges confluent and ephemeral world (it may use a durable backend, but the data structures used for storing the confluent graph are themselves ephemeral). If the value
A
requires a transactional serialization, the current approach is to pre-serialize the value into an appropriate format (e.g. a byte array) before calling intoput
. In that case the wrapping structure must be de-serialized after callingget
.- A
the type of values stored with the entity
- key
the identifier for the object
- value
the value to store
- tx
the transaction within which the access is performed
- path
the path through which the object has been accessed (the version at which it is read)
- format
the format used to store the entity's values
- abstract def remove(key: K, tx: T)(implicit path: T.Acc): Boolean
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated