@Override public void subscribe(final ObservableEmitter<M> emitter) throws Exception { final MobiusLoop<M, E, ?> loop = loopFactory.startFrom(startModel);
@Override public void call(final Emitter<M> emitter) { final MobiusLoop<M, E, ?> loop = loopFactory.startFrom(loopStart);
@Test public void shouldSupportCreatingMultipleLoops() throws Exception { MobiusLoop.Factory<String, Integer, Boolean> factory = Mobius.loop(UPDATE, HANDLER); // one loop = factory.startFrom("first"); loop.dispatchEvent(97); await().atMost(Duration.ONE_SECOND).until(() -> loop.getMostRecentModel(), is("first97")); loop.dispose(); // then another one loop = factory.startFrom("second"); loop.dispatchEvent(97); await().atMost(Duration.ONE_SECOND).until(() -> loop.getMostRecentModel(), is("second97")); }
@Test public void shouldSupportCreatingFactory() throws Exception { MobiusLoop.Factory<String, Integer, Boolean> factory = Mobius.loop(UPDATE, HANDLER); loop = factory.startFrom("resume"); loop.dispatchEvent(97); await().atMost(Duration.ONE_SECOND).until(() -> loop.getMostRecentModel(), is("resume97")); }
ControllerStateRunning( ControllerActions<M, E> actions, Connection<M> renderer, MobiusLoop.Factory<M, E, F> loopFactory, M modelToStartFrom) { this.actions = actions; this.renderer = renderer; this.loop = loopFactory.startFrom(modelToStartFrom); this.startModel = modelToStartFrom; }
ControllerStateRunning( ControllerActions<M, E> actions, Connection<M> renderer, MobiusLoop.Factory<M, E, F> loopFactory, M modelToStartFrom) { this.actions = actions; this.renderer = renderer; this.loop = loopFactory.startFrom(modelToStartFrom); this.startModel = modelToStartFrom; }