Packages

sealed abstract class Rxn[-A, +B] extends AnyRef

An effectful function from A to B; when executed, it may update any number of Refs atomically. (It may also create new Refs.)

These functions are composable (see below), and composition preserves their atomicity. That is, all affected Refs will be updated atomically.

A Rxn forms an Arrow (more specifically, an ArrowChoice). It also forms a Monad in B; however, consider using the arrow combinators (when possible) instead of flatMap (since a static combination of Rxns may be more performant).

The relation between Rxn and Axn is approximately Rxn[A, B] ≡ (A => Axn[B]); or, alternatively Axn[A] ≡ Rxn[Any, A].

Source
Rxn.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Rxn
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def *[X <: A, C](that: Rxn[X, C]): Rxn[X, (B, C)]
  4. final def *>[X <: A, C](that: Rxn[X, C]): Rxn[X, C]
  5. final def +[X <: A, Y >: B](that: Rxn[X, Y]): Rxn[X, Y]
  6. final def <*[X <: A, C](that: Rxn[X, C]): Rxn[X, B]
  7. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. final def >>[X <: A, C](that: => Rxn[X, C]): Rxn[X, C]
  9. final def >>>[C](that: Rxn[B, C]): Rxn[A, C]
  10. final def ?: Rxn[A, Option[B]]
  11. final def as[C](c: C): Rxn[A, C]
  12. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  13. final def attempt: Rxn[A, Option[B]]
  14. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  15. final def contramap[C](f: (C) => A): Rxn[C, B]
  16. final def dimap[C, D](f: (C) => A)(g: (B) => D): Rxn[C, D]
  17. final def dup: Rxn[A, (B, B)]
  18. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  20. final def first[C]: Rxn[(A, C), (B, C)]
  21. final def flatMap[X <: A, C](f: (B) => Rxn[X, C]): Rxn[X, C]
  22. final def flatMapF[C](f: (B) => Axn[C]): Rxn[A, C]
  23. final def flatTap(rxn: Rxn[B, Unit]): Rxn[A, B]
  24. final def flatten[C](implicit ev: <:<[B, Axn[C]]): Rxn[A, C]
  25. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  26. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  27. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  28. final def map[C](f: (B) => C): Rxn[A, C]
  29. final def map2[X <: A, C, D](that: Rxn[X, C])(f: (B, C) => D): Rxn[X, D]
  30. final def maybe: Rxn[A, Boolean]
  31. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  32. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  33. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  34. final def perform[F[_], X >: B](a: A, mcas: Mcas, strategy: RetryStrategy = RetryStrategy.Default)(implicit F: Async[F]): F[X]
  35. final def postCommit(pc: Rxn[B, Unit]): Rxn[A, B]
  36. final def productL[X <: A, C](that: Rxn[X, C]): Rxn[X, B]
  37. final def productR[X <: A, C](that: Rxn[X, C]): Rxn[X, C]
  38. final def provide(a: A): Axn[B]
  39. final def second[C]: Rxn[(C, A), (C, B)]
  40. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  41. final def toFunction: (A) => Axn[B]
  42. def toString(): String
    Definition Classes
    AnyRef → Any
  43. final def unsafePerform(a: A, mcas: Mcas, strategy: Spin = RetryStrategy.Default): B

    Execute the Rxn with the specified input a.

    Execute the Rxn with the specified input a.

    This method is unsafe because it performs side-effects.

    a

    the input to the Rxn.

    mcas

    the internal.mcas.Mcas implementation to use.

    strategy

    the retry strategy to use.

    returns

    the result of the executed Rxn.

  44. final def void: Rxn[A, Unit]
  45. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  46. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  47. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  48. final def ×[C, D](that: Rxn[C, D]): Rxn[(A, C), (B, D)]

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped