All Downloads are FREE. Search and download functionalities are using the official Maven repository.

me.archdev.foundationdb.algebra.TransactionAlgebra.scala Maven / Gradle / Ivy

The newest version!
package me.archdev.foundationdb.algebra

import com.apple.foundationdb.Transaction
import me.archdev.foundationdb.namespaces.Subspace
import me.archdev.foundationdb.serializers.Tupler

import scala.language.higherKinds

trait TransactionAlgebra[F[_]] {
  def commit(): F[Unit]
  def cancel(): F[Unit]
  def close(): F[Unit]
  def onError(e: Throwable): F[Transaction]

  def getVersionstamp(): F[Long]

  def addReadConflictKey[K: Tupler](key: K)(implicit subspace: Subspace = Subspace()): F[Unit]
  def addReadConflictRange[K: Tupler](range: (K, K))(implicit subspace: Subspace = Subspace()): F[Unit]
  def addWriteConflictKey[K: Tupler](key: K)(implicit subspace: Subspace = Subspace()): F[Unit]
  def addWriteConflictRange[K: Tupler](range: (K, K))(implicit subspace: Subspace = Subspace()): F[Unit]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy