com.streambase.sb.operator

## Class Operator.OperatorStates

- java.lang.Object
- - com.streambase.sb.operator.Operator.OperatorStates

- Enclosing class:
    Operator

      public static class Operator.OperatorStates
      extends Object

  The set of runtime states that an Operator can be in. The state of an Operator may change along with the state of the StreamBase application that holds its instance.

  The state of a given Operator may also be changed independently of its application through `sbadmin`.

  Informally, an Operator transitions through states as follows. The initial state of an Operator is `NOT_YET_STARTED`. In this state an Operator has been instantiated and its `init()` method has been called.

  From `NOT_YET_STARTED` an Operator transitions to the `STARTED` state. An Operator starts either because its containing application has started or because it has been started through `sbadmin`. An Operator receives two callbacks from the StreamBase runtime when it starts, `resume()` and `resumed()`. First, the runtime calls the `resume()` method. Once `resume()` has returned, any threads that the Operator has registered are started, if need be. Next, the Operator transitions to the `STARTED` state. The Operator then receives a second callback, `resumed()`.

  From the `STARTED` state, the Operator may transition to the `SUSPENDED` state. An Operator may transition to `SUSPENDED` because its application has suspended or because it has been explicitly suspended with `sbadmin`. The StreamBase runtime also makes call backs on suspend; first the `suspend()` callback is made, then the Operator transitions to the `SUSPENDED` state, then the `suspended()` callback is made.

  From `SUSPENDED`, an Operator can transition back to `STARTED`. This is referred to as 'resuming'. An Operator can resume when its application resumes or when it is explicitly resumed through `sbadmin`.

  An Operator get the same callbacks from the runtime when it starts and when it resumes, `resume()` and `resumed()`. Essentially then, these two transitions, starting and resuming, are equivalent. This implies then that any code that should be run just once for an instance of an Operator belongs in its `init()` method, rather than in the `resume()` or `resumed()` methods.

  An Operator can transition between `STARTED` and `SUSPENDED` any number of times.

  `SHUTDOWN` is an Operator's terminal state. An Operator can enter the `SHUTDOWN` state from any of its other states. The StreamBase runtime calls back to the method `shutdown` prior to entering `SHUTDOWN`.

  An instance of an Operator can not be recovered from a state of `SHUTDOWN`. Once shut down, an Operator can be 'restarted' using the `sbadmin` restart command. However, this causes a new Operator instance to be constructed and its `init()` method to be called. Any state held by the prior instance of the Operator is lost.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `NONE` Invalid operator state
    `static int` | `NOT_YET_STARTED` The initial state of an Operator.
    `static int` | `SHUTDOWN` The terminal state of the Operator.
    `static int` | `STARTED` The Operator has been started; resume() has been called.
    `static int` | `SUSPENDED` The Operator has been suspended; suspend() has been called.

  - ### Method Summary

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### NONE

          public static final int NONE

      Invalid operator state
      See Also:
        Constant Field Values

    - #### NOT_YET_STARTED

          public static final int NOT_YET_STARTED

      The initial state of an Operator. init() has been called, but not resume()
      See Also:
        Constant Field Values

    - #### STARTED

          public static final int STARTED

      The Operator has been started; resume() has been called.
      See Also:
        Constant Field Values

    - #### SUSPENDED

          public static final int SUSPENDED

      The Operator has been suspended; suspend() has been called.
      See Also:
        Constant Field Values

    - #### SHUTDOWN

          public static final int SHUTDOWN

      The terminal state of the Operator. Once shutdown, an Operator can no longer be accessed. It can be restarted, which causes the Operator to be reinstantiated and reinitialized (init() called).
      See Also:
        Constant Field Values

Copyright © 2015–2018 Cloud Software Group, Inc.. All rights reserved.