From c9d2c05b735e39dafa122bbdbf96ee7d24085bd6 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sun, 22 Oct 2023 17:05:30 +0200 Subject: [PATCH] add event sequence diagram --- UML/event.png | Bin 0 -> 44965 bytes UML/event.puml | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ readme.md | 38 ++++------------------------------ 3 files changed, 59 insertions(+), 34 deletions(-) create mode 100644 UML/event.png create mode 100644 UML/event.puml diff --git a/UML/event.png b/UML/event.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f2455592dbfb551f72a22cd70344e3566f858a GIT binary patch literal 44965 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 b ++ : GEN +b -> e ** : new +b -> b --++ : pushEvent +e -> b : getBehavior +b --> e ++: setBehavior +e --> b -- +b -> d ++ : getDispatcher +d --> b +b -> d -- : pushEvent +d ->? -- : push + + +||| +||| +== Push Event == +||| +?->> d ++: pushEvent +d -> eq--++: push +eq -> q ++ +q --> eq +eq -> q -- : pushEndQueue + +||| +||| +== Dispatch == +||| +?->> d ++: executeOnce +d -> q : getFront +q -> e ++ +e --> q +q --> d : event +d -> q : pop +deactivate q +d -> d --++ : dispatchEvent +d -> b ++ : getBehavior +b --> d +d -> b -- : process +b -> b--: processEvent + +destroy e + + + + +@enduml \ No newline at end of file diff --git a/readme.md b/readme.md index c6745ec..51b511c 100644 --- a/readme.md +++ b/readme.md @@ -8,40 +8,6 @@ # Time Algorithm -
- Code puml (maybe it's displayed) - -```plantuml -@startuml - -start -:newTime = 0 -totalTime = 0 -isEnd = it == list.end() -lastTime = 0; - -#tomato:if (!isEnd) then (not end) - #tomato:totalTime += it.getRelTicks(); -endif - - while ( !isEnd && (totalTime <= newTime) ) is (goForward) - :isEnd = (++it == list.end()); - :lastTime = totalTime; - #tomato:if (!isEnd) then (not end) - #tomato:totalTime += it.getRelTicks(); - endif - endwhile - -#tomato:if (!isEnd) then (not end) - #tomato:subRelTicks(newTime- lastTime); -endif -:it.setRelTicks(newTime - lastTime); -:insert(it, newTimeout); - -@enduml -``` - -
@@ -50,6 +16,10 @@ endif +## Event + + + # Tests ## Test 1 This test launches an instance of the Task01Tm class and produces some output. Optionally, multiple instances of Task01Tm can be created to test the XF.