Use this trait to implement your own scroll.internal.compartment.impl.Compartment specific role playing automaton. Please read the documentation for akka.actor.FSM carefully, since the features from that are applicable for role playing automatons.
Remember to call run()
when you want to start this automaton in your
scroll.internal.compartment.impl.Compartment instance.
This automaton will always start in state scroll.internal.rpa.RolePlayingAutomaton.Start, so hook in there.
Final state is always scroll.internal.rpa.RolePlayingAutomaton.Stop, that will terminate the actor system for this akka.actor.FSM.
Use the factory method RolePlayingAutomaton.Use
to gain an instance of your
specific FSM, e.g.:
trait MyCompartment extends Compartment {
// ... some roles and interaction
// your specific RPA here
class MyRolePlayingAutomaton extends RolePlayingAutomaton {
// specific behavior here
when(Start) {
// ...
}
onTransition {
// ...
}
run()
}
Use[MyRolePlayingAutomaton] For this
}
// start everything
new MyCompartment {}
Some predefined event types for messaging are available in the companion object. You may want to define your own states and event types. Simply use a companion object for this as well.
- Companion
- object
Value members
Concrete methods
Stops this automaton. Will set state to scroll.internal.rpa.RolePlayingAutomaton.Stop and terminates the actor system for this akka.actor.FSM.
Stops this automaton. Will set state to scroll.internal.rpa.RolePlayingAutomaton.Stop and terminates the actor system for this akka.actor.FSM.
Starts this automaton. Needs to be called first! Will set the initial state to scroll.internal.rpa.RolePlayingAutomaton.Start.
Starts this automaton. Needs to be called first! Will set the initial state to scroll.internal.rpa.RolePlayingAutomaton.Start.
Inherited methods
Deprecated and Inherited methods
- Deprecated
[Since version 2.6.0]
Use startSingleTimer, startTimerWithFixedDelay or startTimerAtFixedRate instead. This has the same semantics as startTimerAtFixedRate, but startTimerWithFixedDelay is often preferred.- Inherited from
- FSM