Class ExtensibleBehavior<T>
- java.lang.Object
-
- org.apache.pekko.actor.typed.Behavior<T>
-
- org.apache.pekko.actor.typed.ExtensibleBehavior<T>
-
- Direct Known Subclasses:
AbstractBehavior
,AbstractBehavior
,BehaviorImpl.ReceiveBehavior
,BehaviorImpl.ReceiveMessageBehavior
,BuiltBehavior
,Receive
public abstract class ExtensibleBehavior<T> extends Behavior<T>
Extension point for implementing custom behaviors in addition to the existing set of behaviors available through the DSLs inpekko.actor.typed.scaladsl.Behaviors
andpekko.actor.typed.javadsl.Behaviors
Note that behaviors that keep an inner behavior, and intercepts messages for it should not be implemented as an extensible behavior but should instead use the
BehaviorInterceptor
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.pekko.actor.typed.Behavior
Behavior.BehaviorDecorators<Inner>, Behavior.BehaviorDecorators$
-
-
Constructor Summary
Constructors Constructor Description ExtensibleBehavior()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract Behavior<T>
receive(TypedActorContext<T> ctx, T msg)
Process an incoming message and return the next behavior.abstract Behavior<T>
receiveSignal(TypedActorContext<T> ctx, Signal msg)
Process an incomingSignal
and return the next behavior.-
Methods inherited from class org.apache.pekko.actor.typed.Behavior
BehaviorDecorators, canonicalize, existsInStack, interpretMessage, interpretSignal, isAlive, isDeferred, isUnhandled, narrow, start, validateAsInitial
-
-
-
-
Method Detail
-
receive
public abstract Behavior<T> receive(TypedActorContext<T> ctx, T msg) throws java.lang.Exception
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 * returningsame
designates to reuse the current Behavior * returningunhandled
keeps the same Behavior and signals that the message was not yet handledCode calling this method should use
Behavior$
canonicalize
to replace the special objects with real Behaviors.- Throws:
java.lang.Exception
-
receiveSignal
public abstract Behavior<T> receiveSignal(TypedActorContext<T> ctx, Signal msg) throws java.lang.Exception
Process an incomingSignal
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 * returningsame
designates to reuse the current Behavior * returningunhandled
keeps the same Behavior and signals that the message was not yet handledCode calling this method should use
Behavior$
canonicalize
to replace the special objects with real Behaviors.- Throws:
java.lang.Exception
-
-