Combine the two behaviors such that incoming messages are distributed to both of them, each one evolving its state independently.
Combine the two behaviors such that incoming messages are distributed to both of them, each one evolving its state independently.
Process an incoming Signal and return the next behavior.
Process an incoming Signal and return the next behavior. This means that all lifecycle hooks, ReceiveTimeout, Terminated and Failed messages can initiate a behavior change.
The returned behavior can in addition to normal behaviors be one of the canned special objects:
* returning Stopped
will terminate this Behavior
* returning Same
designates to reuse the current Behavior
* returning Unhandled
keeps the same Behavior and signals that the message was not yet handled
Code calling this method should use Behavior$ canonicalize
to replace
the special objects with real Behaviors.
Process an incoming message and return the next behavior.
Process an incoming message and return the next behavior.
The returned behavior can in addition to normal behaviors be one of the canned special objects:
* returning Stopped
will terminate this Behavior
* returning Same
designates to reuse the current Behavior
* returning Unhandled
keeps the same Behavior and signals that the message was not yet handled
Code calling this method should use Behavior$ canonicalize
to replace
the special objects with real Behaviors.
Narrow the type of this Behavior, which is always a safe operation.
Narrow the type of this Behavior, which is always a safe operation. This method is necessary to implement the contravariant nature of Behavior (which cannot be expressed directly due to type inference problems).
Widen the type of this Behavior by providing a filter function that permits only a subtype of the widened set of messages.
Widen the type of this Behavior by providing a filter function that permits only a subtype of the widened set of messages.
Combine the two behaviors such that incoming messages are given first to the left behavior and are then only passed on to the right behavior if the left one returned Unhandled.
Combine the two behaviors such that incoming messages are given first to the left behavior and are then only passed on to the right behavior if the left one returned Unhandled.
(full: BehaviorDecorators[T]).behavior
This type of behavior allows to handle all incoming messages within the same user-provided partial function, be that a user message or a system signal. For messages that do not match the partial function the same behavior is emitted without change. This does entail that unhandled failures of child actors will lead to a failure in this actor.
For the lifecycle notifications pertaining to the actor itself this behavior includes a fallback mechanism: an unhandled PreRestart signal will terminate all child actors (transitively) and then emit a PostStop signal in addition, whereas an unhandled PostRestart signal will emit an additional PreStart signal.