Flexflow.Process behaviour (flexflow v0.2.0) View Source
Process
Link to this section Summary
Types
Init result
Link to this section Types
Specs
action() :: :gen_statem.action()
Specs
definition() :: {:states, Flexflow.state_key()} | {:events, {Flexflow.state_key(), Flexflow.state_key()}}
Specs
event_result() :: :ignore | result() | {:ok, Flexflow.State.t()} | {:ok, Flexflow.State.t(), [action()]}
Specs
event_type() :: :gen_statem.event_type()
Specs
process_tuple() :: {module(), Flexflow.name()}
Specs
Init result
Specs
state_result() :: :ignore | result() | {:ok, Flexflow.State.t()}
Specs
t() :: %Flexflow.Process{ __actions__: [action()], __args__: Flexflow.process_args(), __counter__: integer(), __definitions__: [definition()], __listeners__: %{ required(Flexflow.EventDispatcher.listener()) => Flexflow.EventDispatcher.listen_result() }, __loop__: integer(), __opts__: Keyword.t(), __tasks__: %{required(reference()) => term()}, __vsn__: [{module(), term()}], childs: [Flexflow.process_key()], context: Flexflow.Context.t(), events: %{required(Flexflow.state_key()) => Flexflow.Event.t()}, id: Flexflow.id() | nil, module: module(), name: Flexflow.name(), parent: Flexflow.process_key(), request_id: String.t(), state: Flexflow.state_key(), states: %{required(Flexflow.state_key()) => Flexflow.State.t()} }
Link to this section Functions
Specs
handle_event(:enter, Flexflow.state_key(), t()) :: result()
handle_event(event_type(), term(), t()) :: result()
Specs
init(module(), Flexflow.id(), Flexflow.process_args()) :: result()
Specs
new(module(), Flexflow.id(), Flexflow.process_args()) :: {:ok, t()}