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.
 
 
 

79 lines
2.0 KiB

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)
}
}