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