Defines an actor's behavior in the simulation.
Example
iex> definition = ActorSimulation.Definition.new(:worker,
...> send_pattern: {:periodic, 100, :tick},
...> targets: [:supervisor])
iex> definition.name
:worker
iex> definition.targets
[:supervisor]
Summary
Functions
Calculates the interval in milliseconds for a send pattern.
Matches a message against the on_match patterns and returns the response. Returns nil if no match.
Gets the message(s) to send for a send pattern.
Functions
Calculates the interval in milliseconds for a send pattern.
Examples
iex> ActorSimulation.Definition.interval_for_pattern({:periodic, 100, :msg})
100
iex> ActorSimulation.Definition.interval_for_pattern({:rate, 10, :msg})
100
iex> ActorSimulation.Definition.interval_for_pattern({:burst, 5, 500, :msg})
500
iex> ActorSimulation.Definition.interval_for_pattern({:self_message, 200, :timeout})
200
Matches a message against the on_match patterns and returns the response. Returns nil if no match.
Gets the message(s) to send for a send pattern.
Examples
iex> ActorSimulation.Definition.messages_for_pattern({:periodic, 100, :tick})
[:tick]
iex> ActorSimulation.Definition.messages_for_pattern({:burst, 3, 500, :event})
[:event, :event, :event]
iex> ActorSimulation.Definition.messages_for_pattern({:self_message, 200, :timeout})
[:timeout]