abstract class AbstractBehavior[T] extends ExtensibleBehavior[T]
An actor Behavior
can be implemented by extending this class and implement the
abstract method AbstractBehavior#onMessage and optionally override
AbstractBehavior#onSignal. Mutable state can be defined as instance variables
of the class.
This is an Object-oriented style of defining a Behavior
. A more functional style
alternative is provided by the factory methods in Behaviors, for example
Behaviors.receiveMessage.
Instances of this behavior should be created via Behaviors.setup and if the ActorContext is needed it can be passed as a constructor parameter from the factory function.
- Source
- AbstractBehavior.scala
- See also
- Alphabetic
- By Inheritance
- AbstractBehavior
- ExtensibleBehavior
- Behavior
- AnyRef
- Any
- by BehaviorDecorators
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new AbstractBehavior()
Abstract Value Members
-
abstract
def
onMessage(msg: T): Behavior[T]
Implement this method to process an incoming message and return the next behavior.
Implement this method to 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
this
orsame
designates to reuse the current Behavior - returning
unhandled
keeps the same Behavior and signals that the message was not yet handled
- Annotations
- @throws( classOf[Exception] )
- returning
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to any2stringadd[AbstractBehavior[T]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (AbstractBehavior[T], B)
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to ArrowAssoc[AbstractBehavior[T]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
behavior: Behavior[T]
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to BehaviorDecorators[T] performed by method BehaviorDecorators in akka.actor.typed.Behavior.
- Definition Classes
- BehaviorDecorators
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate() @throws( ... )
-
def
ensuring(cond: (AbstractBehavior[T]) ⇒ Boolean, msg: ⇒ Any): AbstractBehavior[T]
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to Ensuring[AbstractBehavior[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (AbstractBehavior[T]) ⇒ Boolean): AbstractBehavior[T]
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to Ensuring[AbstractBehavior[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): AbstractBehavior[T]
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to Ensuring[AbstractBehavior[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): AbstractBehavior[T]
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to Ensuring[AbstractBehavior[T]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to StringFormat[AbstractBehavior[T]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
narrow[U <: T]: Behavior[U]
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).
- Definition Classes
- Behavior
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
onSignal: PartialFunction[Signal, Behavior[T]]
Override this method to process an incoming akka.actor.typed.Signal and return the next behavior.
Override this method to process an incoming akka.actor.typed.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 * returningthis
orsame
designates to reuse the current Behavior * returningunhandled
keeps the same Behavior and signals that the message was not yet handledBy default, partial function is empty and does not handle any signals.
- Annotations
- @throws( classOf[Exception] )
-
final
def
orElse(that: Behavior[T]): Behavior[T]
Composes this
Behavior
with a fallbackBehavior
which is used when thisBehavior
doesn't handle the message or signal, i.e.Composes this
Behavior
with a fallbackBehavior
which is used when thisBehavior
doesn't handle the message or signal, i.e. whenunhandled
is returned.- that
the fallback
Behavior
- Definition Classes
- Behavior
-
final
def
receive(ctx: TypedActorContext[T], msg: T): Behavior[T]
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 * 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.- Definition Classes
- AbstractBehavior → ExtensibleBehavior
- Annotations
- @throws( classOf[Exception] )
-
final
def
receiveSignal(ctx: TypedActorContext[T], msg: Signal): Behavior[T]
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 * 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.- Definition Classes
- AbstractBehavior → ExtensibleBehavior
- Annotations
- @throws( classOf[Exception] )
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
widen[U](matcher: PartialFunction[U, T]): Behavior[U]
Widen the wrapped Behavior by placing a funnel in front of it: the supplied PartialFunction decides which message to pull in (those that it is defined at) and may transform the incoming message to place them into the wrapped Behavior’s type hierarchy.
Widen the wrapped Behavior by placing a funnel in front of it: the supplied PartialFunction decides which message to pull in (those that it is defined at) and may transform the incoming message to place them into the wrapped Behavior’s type hierarchy. Signals are not transformed.
Example:
receive[String] { (ctx, msg) => println(msg); same }.widen[Number] { case b: BigDecimal => s"BigDecimal($b)" case i: BigInteger => s"BigInteger($i)" // all other kinds of Number will be `unhandled` }
Scheduled messages via akka.actor.typed.scaladsl.TimerScheduler can currently not be used together with
widen
, see issue #25318.- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to BehaviorDecorators[T] performed by method BehaviorDecorators in akka.actor.typed.Behavior.
- Definition Classes
- BehaviorDecorators
-
def
→[B](y: B): (AbstractBehavior[T], B)
- Implicit
- This member is added by an implicit conversion from AbstractBehavior[T] to ArrowAssoc[AbstractBehavior[T]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc