Packages

object Callback

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

Type Members

  1. final class Builders[E] extends AnyVal

    Functions exposed via apply.

Value Members

  1. def apply[E]: Builders[E]

    For building Callback objects using the Partially-Applied Type technique.

    For building Callback objects using the Partially-Applied Type technique.

    For example these are Equivalent:

    Callback[Throwable, Throwable].empty[String] <-> Callback.empty[Throwable, String]

  2. def empty[E, A](implicit r: UncaughtExceptionReporter): Callback[E, A]

    Creates an empty Callback, a callback that doesn't do anything in onNext and that logs errors in onError with the provided monix.execution.UncaughtExceptionReporter.

  3. def forked[E, A](cb: Callback[E, A])(implicit ec: ExecutionContext): Callback[E, A]

    Given a Callback wraps it into an implementation that calls onSuccess and onError asynchronously, using the given scala.concurrent.ExecutionContext.

    Given a Callback wraps it into an implementation that calls onSuccess and onError asynchronously, using the given scala.concurrent.ExecutionContext.

    The async boundary created is "light", in the sense that a TrampolinedRunnable is used and supporting schedulers can execute these using an internal trampoline, thus execution being faster and immediate, but still avoiding growing the call-stack and thus avoiding stack overflows.

    THREAD-SAFETY: the returned callback is thread-safe.

    In case onSuccess and onError get called multiple times, from multiple threads even, the implementation protects against access violations and throws a CallbackCalledMultipleTimesException.

    See also

    Callback.trampolined

  4. def fromAttempt[E, A](cb: (Either[E, A]) => Unit): Callback[E, A]

    Turns Either[Throwable, A] => Unit callbacks into Monix callbacks.

    Turns Either[Throwable, A] => Unit callbacks into Monix callbacks.

    These are common within Cats' implementation, used for example in cats.effect.IO.

    WARNING: the returned callback is NOT thread-safe!

  5. def fromPromise[A](p: Promise[A]): Callback[Throwable, A]

    Returns a Callback instance that will complete the given promise.

    Returns a Callback instance that will complete the given promise.

    THREAD-SAFETY: the provided instance is thread-safe by virtue of Promise being thread-safe.

  6. def fromTry[A](cb: (Try[A]) => Unit): Callback[Throwable, A]

    Turns Try[A] => Unit callbacks into Monix callbacks.

    Turns Try[A] => Unit callbacks into Monix callbacks.

    These are common within Scala's standard library implementation, due to usage with Scala's Future.

    WARNING: the returned callback is NOT thread-safe!

  7. def safe[E, A](cb: Callback[E, A])(implicit r: UncaughtExceptionReporter): Callback[E, A]

    Wraps any Callback into a safer implementation that protects against protocol violations (e.g.

    Wraps any Callback into a safer implementation that protects against protocol violations (e.g. onSuccess or onError must be called at most once).

    THREAD-SAFETY: the returned callback is thread-safe.

    In case onSuccess and onError get called multiple times, from multiple threads even, the implementation protects against access violations and throws a CallbackCalledMultipleTimesException.

  8. def trampolined[E, A](cb: Callback[E, A])(implicit ec: ExecutionContext): Callback[E, A]

    Given a Callback wraps it into an implementation that calls onSuccess and onError asynchronously, using the given scala.concurrent.ExecutionContext.

    Given a Callback wraps it into an implementation that calls onSuccess and onError asynchronously, using the given scala.concurrent.ExecutionContext.

    The async boundary created is "light", in the sense that a TrampolinedRunnable is used and supporting schedulers can execute these using an internal trampoline, thus execution being faster and immediate, but still avoiding growing the call-stack and thus avoiding stack overflows.

    THREAD-SAFETY: the returned callback is thread-safe.

    In case onSuccess and onError get called multiple times, from multiple threads even, the implementation protects against access violations and throws a CallbackCalledMultipleTimesException.

    See also

    forked