123456789_123456789_123456789_123456789_123456789_

Class: Concurrent::Actor::Utils::AdHoc

Overview

Allows quick creation of actors with behaviour defined by blocks.

Examples:

ping

AdHoc.spawn :forward, an_actor do |where|
  # this block has to return proc defining #on_message behaviour
  #=> message { where.tell message  }
end

Constant Summary

Concern::Logging - Included

SEV_LABEL

Class Method Summary

Actor::AbstractContext - Inherited

.spawn

Behaves as Concurrent::Actor.spawn but :class is auto-inserted based on receiver so it can be omitted.

.spawn!

behaves as Concurrent::Actor.spawn! but :class is auto-inserted based on receiver so it can be omitted.

.to_spawn_options

Instance Attribute Summary

Instance Method Summary

AsAdHoc - Included

Actor::Context - Inherited

Actor::AbstractContext - Inherited

#<<
#ask,
#ask!
#behaviour_definition,
#dead_letter_routing

Defines an actor responsible for dead letters.

#default_executor

override to se different default executor, e.g.

#default_reference_class

override if different class for reference is needed.

#envelope,
#on_event

override to add custom code invocation on internal events like :terminated, :resumed, anError.

#on_message,
#pass

if you want to pass the message to next behaviour, usually Actor::Behaviour::ErrorsOnUnknownMessage

#tell

tell self a message.

#initialize_core, #on_envelope

Actor::InternalDelegations - Included

Concern::Logging - Included

#log

Logs through Concurrent.global_logger, it can be overridden by setting @logger.

Actor::PublicDelegations - Included

Actor::TypeCheck - Included