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

de.sciss.proc.Confluent.scala Maven / Gradle / Ivy

/*
 *  Confluent.scala
 *  (SoundProcesses)
 *
 *  Copyright (c) 2010-2024 Hanns Holger Rutz. All rights reserved.
 *
 *	This software is published under the GNU Affero General Public License v3+
 *
 *
 *  For further information, please contact Hanns Holger Rutz at
 *  [email protected]
 */

package de.sciss.proc

import de.sciss.lucre.synth.InMemory
import de.sciss.lucre.{ConfluentLike, DataStore, confluent, synth}
import de.sciss.proc.impl.ConfluentImpl

object Confluent {
  def apply(storeFactory: DataStore.Factory): Confluent = ConfluentImpl(storeFactory)

  trait Txn extends confluent.Txn[Txn] with synth.Txn[Txn] {
//    private[proc] def durable : Durable#Tx
//    private[proc] def inMemory: InMemory#Tx

    type I  = /*L*/InMemory.Txn
    type D  = /*L*/Durable .Txn
  }

//  implicit def inMemory(tx: T): InMemory#Tx = tx.inMemory
//  implicit def durable (tx: T): Durable #Tx = tx.durable
}

trait Confluent extends ConfluentLike[Confluent.Txn] with synth.Sys {
  protected type S  = Confluent
  override  type T  = Confluent .Txn
  override  type D  = Durable   .Txn
  override  type I  = InMemory  .Txn

  override def durable : Durable
  override def inMemory: InMemory
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy