Class: Concurrent::Actor::Behaviour::Abstract

Inherits:
Object
  • Object
show all
Includes:
InternalDelegations, TypeCheck
Defined in:
lib/concurrent/actor/behaviour/abstract.rb

Direct Known Subclasses

Awaits, Buffer, ErrorsOnUnknownMessage, ExecutesContext, Linking, Pausing, RemovesChild, SetResults, Supervising, Termination

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Abstract) initialize(core, subsequent, core_options)

Returns a new instance of Abstract



12
13
14
15
# File 'lib/concurrent/actor/behaviour/abstract.rb', line 12

def initialize(core, subsequent, core_options)
  @core       = Type! core, Core
  @subsequent = Type! subsequent, Abstract, NilClass
end

Instance Attribute Details

- (undocumented) core (readonly)



10
11
12
# File 'lib/concurrent/actor/behaviour/abstract.rb', line 10

def core
  @core
end

- (undocumented) subsequent (readonly)



10
11
12
# File 'lib/concurrent/actor/behaviour/abstract.rb', line 10

def subsequent
  @subsequent
end

Instance Method Details

- (undocumented) behaviour(behaviour_class) Originally defined in module InternalDelegations

see Core#behaviour

- (undocumented) behaviour!(behaviour_class) Originally defined in module InternalDelegations

see Core#behaviour!

- (undocumented) broadcast(public, event)

broadcasts event to all behaviours and context



37
38
39
# File 'lib/concurrent/actor/behaviour/abstract.rb', line 37

def broadcast(public, event)
  core.broadcast(public, event)
end

- (undocumented) Child!(value, *types) Originally defined in module TypeCheck

- (Boolean) Child?(value, *types) Originally defined in module TypeCheck

Returns:

  • (Boolean)

- (undocumented) children Originally defined in module InternalDelegations

See Also:

- (AbstractContext) context Originally defined in module InternalDelegations

Returns:

- (undocumented) context_class Also known as: actor_class Originally defined in module PublicDelegations

See Also:

- (undocumented) dead_letter_routing Originally defined in module InternalDelegations

- (undocumented) executor Originally defined in module PublicDelegations

See Also:

- (undocumented) log(level, message = nil, &block) Originally defined in module InternalDelegations

delegates to core.log

See Also:

  • Logging#log

- (undocumented) Match!(value, *types) Originally defined in module TypeCheck

- (Boolean) Match?(value, *types) Originally defined in module TypeCheck

Returns:

  • (Boolean)

- (undocumented) name Originally defined in module PublicDelegations

See Also:

- (undocumented) on_envelope(envelope)

Note:

super needs to be called not to break the chain

override to add extra behaviour



19
20
21
# File 'lib/concurrent/actor/behaviour/abstract.rb', line 19

def on_envelope(envelope)
  pass envelope
end

- (undocumented) on_event(public, event)

Note:

super needs to be called not to break the chain

override to add extra behaviour



30
31
32
# File 'lib/concurrent/actor/behaviour/abstract.rb', line 30

def on_event(public, event)
  subsequent.on_event public, event if subsequent
end

- (undocumented) parent Originally defined in module PublicDelegations

See Also:

- (undocumented) pass(envelope)

Parameters:



24
25
26
# File 'lib/concurrent/actor/behaviour/abstract.rb', line 24

def pass(envelope)
  subsequent.on_envelope envelope
end

- (undocumented) path Originally defined in module PublicDelegations

See Also:

- (undocumented) redirect(reference, envelope = self.envelope) Originally defined in module InternalDelegations

- (undocumented) reference Also known as: ref Originally defined in module PublicDelegations

See Also:

- (undocumented) reject_envelope(envelope)



41
42
43
44
45
# File 'lib/concurrent/actor/behaviour/abstract.rb', line 41

def reject_envelope(envelope)
  envelope.reject! ActorTerminated.new(reference)
  dead_letter_routing << envelope unless envelope.future
  log(DEBUG) { "rejected #{envelope.message} from #{envelope.sender_path}"}
end

- (undocumented) terminate!(reason = nil) Originally defined in module InternalDelegations

See Also:

  • Termination#terminate!

- (Boolean) terminated? Originally defined in module InternalDelegations

Returns:

  • (Boolean)

See Also:

  • Termination#terminated?

- (undocumented) Type!(value, *types) Originally defined in module TypeCheck

- (Boolean) Type?(value, *types) Originally defined in module TypeCheck

Returns:

  • (Boolean)