diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2019-10-13 18:14:21 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2019-10-13 18:14:21 +0800 |
commit | f196a0b621a2afa45c577bd2641331152691b134 (patch) | |
tree | 880a51b9071d90122b88166de8d53914c7f20252 /cask/util/src/cask/util | |
parent | 39d51e36cd5f2058966dd6200609d8fb9dac92ec (diff) | |
download | cask-f196a0b621a2afa45c577bd2641331152691b134.tar.gz cask-f196a0b621a2afa45c577bd2641331152691b134.tar.bz2 cask-f196a0b621a2afa45c577bd2641331152691b134.zip |
Add a simple `StateMachineActor` class
Diffstat (limited to 'cask/util/src/cask/util')
-rw-r--r-- | cask/util/src/cask/util/BatchActor.scala | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/cask/util/src/cask/util/BatchActor.scala b/cask/util/src/cask/util/BatchActor.scala index 26f1c14..fd4861e 100644 --- a/cask/util/src/cask/util/BatchActor.scala +++ b/cask/util/src/cask/util/BatchActor.scala @@ -34,4 +34,13 @@ abstract class BatchActor[T]()(implicit ec: ExecutionContext, } } } -}
\ No newline at end of file +} + +abstract class StateMachine[T]() + (implicit ec: ExecutionContext, + log: Logger) { + class State(val run: T => State) + protected[this] def initialState: State + protected[this] var state: State = initialState + def run(items: Seq[T]): Unit = items.foreach{i => state = state.run(i)} +} |