object MakeSerialAgent extends MakeSerialAgentInstance
A helper for creating instances of tofu.concurrent.SerialAgent that use different effects during construction
and work. If you want to use same effect to construct and run SerialAgent use tofu.concurrent.SerialAgents
Sample usage:
import cats.Monad import cats.implicits._ import cats.syntax.flatMap._ import cats.effect.Sync import tofu.Fire import tofu.concurrent.{SerialAgents, MakeSerialAgent, MakeRef, MakeSemaphore, Refs, Semaphores} import tofu.common.Console def example[F[_]: SerialAgents: Monad: Console: Sync: Refs: Semaphores]( implicit refs: MakeRef[Option, F], sems: MakeSemaphore[Option, F] ): F[Unit] = for { _ <- Monad[F].unit serialAgent <- MakeSerialAgent[Option, F].of(42).map(Monad[F].pure(_)).getOrElse(SerialAgents[F].of(42)) newValue <- serialAgent.updateM(a => Console[F].putStrLn(s"current value is $a") *> Monad[F].pure(a + 27)) _ <- Console[F].putStrLn(s"new value is $newValue") // new value is 69 } yield ()
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- MakeSerialAgent
- MakeSerialAgentInstance
- MakeSerialAgentInstance0
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Type Members
- final class SerialApplier[I[_], F[_]] extends AnyVal
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[I[_], F[_]](implicit mkSerialAgent: MakeSerialAgent[I, F]): SerialApplier[I, F]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
implicit final
def
interopCE2[I[_], F[_]](implicit carrier: MkSerialAgentCE2Carrier[I, F]): MakeSerialAgent[I, F]
- Definition Classes
- MakeSerialAgentInstance0
-
implicit final
def
interopCE3[I[_], F[_]](implicit carrier: MkSerialAgentCE3Carrier[I, F]): MakeSerialAgent[I, F]
- Definition Classes
- MakeSerialAgentInstance
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated