#2644 - doc FSM.NullFunction and when-requirements
This commit is contained in:
parent
cda2c2b62a
commit
5cf2e7f8fd
2 changed files with 21 additions and 0 deletions
|
|
@ -189,6 +189,15 @@ class FSMDocSpec extends MyFavoriteTestFrameWorkPlusAkkaTestKit {
|
||||||
}
|
}
|
||||||
//#fsm-code-elided
|
//#fsm-code-elided
|
||||||
|
|
||||||
|
"demonstrate NullFunction" in {
|
||||||
|
class A extends Actor with FSM[Int, Null] {
|
||||||
|
val SomeState = 0
|
||||||
|
//#NullFunction
|
||||||
|
when(SomeState)(FSM.NullFunction)
|
||||||
|
//#NullFunction
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
"batch correctly" in {
|
"batch correctly" in {
|
||||||
val buncher = system.actorOf(Props(new Buncher))
|
val buncher = system.actorOf(Props(new Buncher))
|
||||||
buncher ! SetTarget(testActor)
|
buncher ! SetTarget(testActor)
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,18 @@ demonstrated below:
|
||||||
The :class:`Event(msg: Any, data: D)` case class is parameterized with the data
|
The :class:`Event(msg: Any, data: D)` case class is parameterized with the data
|
||||||
type held by the FSM for convenient pattern matching.
|
type held by the FSM for convenient pattern matching.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
It is required that you define handlers for each of the possible FSM states,
|
||||||
|
otherwise there will be failures when trying to switch to undeclared states.
|
||||||
|
|
||||||
|
It is recommended practice to declare the states as objects extending a
|
||||||
|
sealed trait and then verify that there is a ``when`` clause for each of the
|
||||||
|
states. If you want to leave the handling of a state “unhandled” (more below),
|
||||||
|
it still needs to be declared like this:
|
||||||
|
|
||||||
|
.. includecode:: code/docs/actor/FSMDocSpec.scala#NullFunction
|
||||||
|
|
||||||
Defining the Initial State
|
Defining the Initial State
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue