BB.Reactor.Dsl.WaitForEvent (bb_reactor v0.2.3)

Copy Markdown View Source

DSL entity for waiting for PubSub events in a Reactor.

The wait_for_event entity wraps BB.Reactor.Step.WaitForEvent with a cleaner syntax for subscribing to and filtering BB.PubSub messages.

Example

wait_for_event :force_detected do
  path [:sensor, :force_torque]
  timeout 5000
  filter &MyFilters.force_threshold?/1
end

Summary

Types

t()

@type t() :: %BB.Reactor.Dsl.WaitForEvent{
  __identifier__: any(),
  __spark_metadata__: Spark.Dsl.Entity.spark_meta(),
  arguments: [Reactor.Dsl.Argument.t()],
  async?: boolean(),
  description: String.t() | nil,
  filter: (BB.Message.t() -> boolean()) | nil,
  guards: [Reactor.Dsl.Where.t() | Reactor.Dsl.Guard.t()],
  message_types: [module()],
  name: atom(),
  path: [atom()],
  timeout: pos_integer() | :infinity,
  transform: nil | (any() -> any())
}