ActorSimulation.Definition (GenServerVirtualTime v0.6.0)

Copy Markdown View Source

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

interval_for_pattern(arg1)

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

match_message(definition, msg)

Matches a message against the on_match patterns and returns the response. Returns nil if no match.

messages_for_pattern(arg1)

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]

new(name, opts)