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

me.archdev.foundationdb.interpreters.inmemory.TransactionInterpreter.scala Maven / Gradle / Ivy

The newest version!
package me.archdev.foundationdb.interpreters.inmemory

import com.apple.foundationdb.Transaction
import me.archdev.foundationdb.InMemoryContext
import me.archdev.foundationdb.algebra.TransactionAlgebra
import me.archdev.foundationdb.clients.{ TransactionCanceled, TransactionClosed, TransactionCommited }
import me.archdev.foundationdb.namespaces.Subspace
import me.archdev.foundationdb.serializers.Tupler

trait TransactionInterpreter extends TransactionAlgebra[InMemoryContext] {

  override def commit(): InMemoryContext[Unit] =
    modifyState(s => throw TransactionCommited(s), unit)

  override def cancel(): InMemoryContext[Unit] =
    modifyState(_ => throw TransactionCanceled(), unit)

  override def close(): InMemoryContext[Unit] =
    modifyState(_ => throw TransactionClosed(), unit)

  override def onError(e: Throwable): InMemoryContext[Transaction] = ???

  override def getVersionstamp(): InMemoryContext[Long] = ???

  override def addReadConflictKey[K: Tupler](key: K)(implicit subspace: Subspace): InMemoryContext[Unit] =
    modifyState(identity, unit)

  override def addReadConflictRange[K: Tupler](range: (K, K))(
      implicit subspace: Subspace
  ): InMemoryContext[Unit] = modifyState(identity, unit)

  override def addWriteConflictKey[K: Tupler](key: K)(implicit subspace: Subspace): InMemoryContext[Unit] =
    modifyState(identity, unit)

  override def addWriteConflictRange[K: Tupler](range: (K, K))(
      implicit subspace: Subspace
  ): InMemoryContext[Unit] = modifyState(identity, unit)

}

object TransactionInterpreter extends TransactionInterpreter




© 2015 - 2025 Weber Informatics LLC | Privacy Policy