All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.revenj.RevenjSystemState Maven / Gradle / Ivy

The newest version!
package org.revenj;

import org.revenj.extensibility.Container;
import org.revenj.extensibility.SystemState;
import rx.Observable;
import rx.subjects.PublishSubject;

class RevenjSystemState implements SystemState {

	private boolean systemBooting = true;
	private boolean systemReady = false;
	private final PublishSubject changeSubject = PublishSubject.create();
	private final PublishSubject startupSubject = PublishSubject.create();
	private final Observable changeEvents;
	private final Observable startupEvents;

	public RevenjSystemState() {
		changeEvents = changeSubject.asObservable();
		startupEvents = startupSubject.asObservable();
	}

	@Override
	public boolean isBooting() {
		return systemBooting;
	}

	@Override
	public boolean isReady() {
		return systemReady;
	}

	void started(Container container) {
		systemBooting = false;
		systemReady = true;
		startupSubject.onNext(container);
	}

	@Override
	public Observable ready() {
		return startupEvents;
	}

	@Override
	public Observable change() {
		return changeEvents;
	}

	@Override
	public void notify(SystemEvent value) {
		changeSubject.onNext(value);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy