Package org.yamcs

Class YamcsInstanceService

  • Direct Known Subclasses:
    YamcsServerInstance

    public abstract class YamcsInstanceService
    extends Object
    Inspired from Guava services, this class offers the following states:
    • OFFLINE
    • INITIALIZING
    • INITIALIZED
    • STARTING
    • RUNNING
    • STOPPING
    • FAILED
    transitions are allowed back to OFFLINE from all steady states
    • Constructor Detail

      • YamcsInstanceService

        public YamcsInstanceService()
    • Method Detail

      • doInit

        protected abstract void doInit()
      • doStart

        protected abstract void doStart()
      • doStop

        protected abstract void doStop()
      • state

        public final org.yamcs.protobuf.YamcsInstance.InstanceState state()
      • awaitInitialized

        public final void awaitInitialized()
      • awaitRunning

        public final void awaitRunning()
      • awaitOffline

        public final void awaitOffline()
      • notifyInitialized

        protected final void notifyInitialized()
        Implementing classes should invoke this method once their service has been initialized.
        Throws:
        IllegalStateException - if the service is not YamcsInstance.InstanceState.STARTING.
      • notifyStarted

        protected final void notifyStarted()
        Implementing classes should invoke this method once their service has started. It will cause the service to transition from YamcsInstance.InstanceState.STARTING to YamcsInstance.InstanceState.RUNNING.
        Throws:
        IllegalStateException - if the service is not YamcsInstance.InstanceState.STARTING.
      • notifyStopped

        protected final void notifyStopped()
        Implementing classes should invoke this method once their service has stopped. It will cause the service to transition from YamcsInstance.InstanceState.STOPPING to YamcsInstance.InstanceState.OFFLINE.
        Throws:
        IllegalStateException - if the service is neither YamcsInstance.InstanceState.STOPPING nor YamcsInstance.InstanceState.RUNNING.
      • failureCause

        public final Throwable failureCause()
      • notifyFailed

        protected final void notifyFailed​(Throwable cause)
        Invoke this method to transition the service to the YamcsInstance.InstanceState.FAILED. The service will not be stopped if it is running. Invoke this method when a service has failed critically or otherwise cannot be started nor stopped.
      • offline

        public void offline​(org.yamcs.protobuf.YamcsInstance.InstanceState from)
      • stopping

        public void stopping​(org.yamcs.protobuf.YamcsInstance.InstanceState from)