From c07c47385e635d4061e7b944d7c6f691a741861f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Sat, 21 Oct 2023 18:29:00 +0200 Subject: [PATCH] add timeout sequence diagram --- UML/timeout.png | Bin 0 -> 64513 bytes UML/timeout.puml | 62 +++++++++++++++++++++++++++++++++++++++++++++++ readme.md | 9 +++++++ 3 files changed, 71 insertions(+) create mode 100644 UML/timeout.png create mode 100644 UML/timeout.puml diff --git a/UML/timeout.png b/UML/timeout.png new file mode 100644 index 0000000000000000000000000000000000000000..44ed31b15fe3ddc22a8ef09803ff5502d7450db3 GIT binary patch literal 64513 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 C10Tfz literal 0 HcmV?d00001 diff --git a/UML/timeout.puml b/UML/timeout.puml new file mode 100644 index 0000000..728d94b --- /dev/null +++ b/UML/timeout.puml @@ -0,0 +1,62 @@ +@startuml + +participant "Behavior::StateMachine" as sm +participant Dispatcher as d +participant TimeoutManager as tm +entity "Event::Timeout" as t +queue "TimeoutManager::timeouts_" as timeouts + +autoactivate off +||| +||| +== Schedule timeout == +||| +sm -> sm++ : scheduleTimeout +sm -> d ++: getDispatcher +d --> sm --: dispatcher +sm -> d --++ : scheduleTimeout +d -> tm ++: getTimeoutManager +tm --> d --: timeoutManager +d -> tm --++ : scheduleTimeout +tm -> t ** : new +t --> tm +tm -> timeouts --++: insert + +||| +||| +== Decrement timeout (and dispatch) == +||| +loop every tickInterval +?->> tm ++: tick +tm -> timeouts : getFront +timeouts -> t ++ +t --> timeouts +timeouts --> tm : timeout +tm -> t --: decrement +end +||| +note left t +When timeout is 0, +dispatch event +end note +t -> timeouts : pop +deactivate timeouts +t ->? --: pushEvent + +||| +||| +== Unschedule timeout == +||| +sm -> sm++ : unscheduleTimeout +sm -> d ++: getDispatcher +d --> sm --: dispatcher +sm -> d --++ : unscheduleTimeout +d -> tm ++: getTimeoutManager +tm --> d --: timeoutManager +d -> tm --++ : unscheduleTimeout +tm -> timeouts --: erase +timeouts -> t !! + + + +@enduml \ No newline at end of file diff --git a/readme.md b/readme.md index 082b72e..c6745ec 100644 --- a/readme.md +++ b/readme.md @@ -8,6 +8,9 @@ # Time Algorithm +

+ Code puml (maybe it's displayed) + ```plantuml @startuml @@ -37,9 +40,15 @@ endif @enduml ``` + +
+ +# Sequence Diagrams +## Timeout + # Tests ## Test 1