You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package nova.monadic_sfx.modules
import nova.monadic_sfx.executors.Schedulers import monix.execution.Scheduler import nova.monadic_sfx.http.requests.DummyRequest import monix.eval.Task import akka.{actor => classic} import cats.effect.Resource import nova.monadic_sfx.AppTypes
trait MainModule { import com.softwaremill.macwire._ // val schedulers: Schedulers = new Schedulers()
// implicit val defaultScheduler: Scheduler = schedulers.fx
// val program =
// for {
// backend <- Backend()
// fxActorSystem <-
// Resource
// .make(Task {
// classic.ActorSystem(
// name = "FXActorSystem"
// )
// })(sys => Task(sys.terminate()))
// } yield {
// val dummyRequester = wire[DummyRequest]
// dummyRequester.send()
// }
// val program = Backend().use(backend =>
// Resource
// .make(Task {
// classic.ActorSystem(
// name = "FXActorSystem"
// )
// })(sys => Task(sys.terminate()))
// .use { implicit system =>
// // system.spa
// // system.typed
// // val javaFxActor = system.actorOf(
// // Props[JavaFxActor]().withDispatcher("javafx-dispatcher"),
// // "javaFxActor"
// // )
// // val swingActor = system.actorOf(
// // Props[SwingActor]().withDispatcher("swing-dispatcher"),
// // "swingActor"
// // )
// Task(new DummyRequest(backend)) >>
// Task.unit
// }
// )
def schedulers: Schedulers
def defaultScheduler: Scheduler
def backendTask: Task[AppTypes.HttpBackend] def actorSystemTask: Task[classic.ActorSystem]
def deps = for { backend <- backendTask actorSystem <- actorSystemTask dummyRequesterTask <- Task { wireDeps(backend, actorSystem) } } yield dummyRequesterTask
def wireDeps( backend: AppTypes.HttpBackend, system: classic.ActorSystem ): DummyRequest = { wire[DummyRequest] // new DummyRequest(backend)
}
}
|