~aleteoryx/muditaos

ref: 5e7ff6e5af464e62eb1759276bda0d5952414f3e muditaos/module-services/service-evtmgr/doc/battery_status_notification.svg -rw-r--r-- 12.5 KiB
5e7ff6e5 — Marcin Zieliński [MOS-840] VoLTE switch unavailability fix 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="481px" preserveAspectRatio="none" style="width:1340px;height:481px;background:#F0F0F0;" version="1.1" viewBox="0 0 1340 481" width="1340px" zoomAndPan="magnify"><defs><filter height="300%" id="f1b9c2dncdp5dx" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#F0F0F0" filter="url(#f1b9c2dncdp5dx)" height="103.5313" style="stroke: #000000; stroke-width: 2.0;" width="468.5" x="414.5" y="188.125"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="71" x2="71" y1="54.5938" y2="425.1875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="266" x2="266" y1="54.5938" y2="425.1875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="484.5" x2="484.5" y1="54.5938" y2="425.1875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="703.5" x2="703.5" y1="54.5938" y2="425.1875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="878" x2="878" y1="54.5938" y2="425.1875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1004" x2="1004" y1="54.5938" y2="425.1875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1165.5" x2="1165.5" y1="54.5938" y2="425.1875"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1284.5" x2="1284.5" y1="54.5938" y2="425.1875"/><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="8" y="19.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="108" x="15" y="39.292">Battery Charger</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="8" y="424.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="108" x="15" y="444.1826">Battery Charger</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="211" y="19.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="92" x="218" y="39.292">Worker Event</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="211" y="424.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="92" x="218" y="444.1826">Worker Event</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="424.5" y="19.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="431.5" y="39.292">Event Manager</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="424.5" y="424.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="431.5" y="444.1826">Event Manager</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="637.5" y="19.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="644.5" y="39.292">System Manager</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="637.5" y="424.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="644.5" y="444.1826">System Manager</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="804" y="19.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="130" x="811" y="39.292">Current application</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="804" y="424.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="130" x="811" y="444.1826">Current application</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="970" y="19.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="50" x="977" y="39.292">TopBar</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="970" y="424.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="50" x="977" y="444.1826">TopBar</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="1106.5" y="19.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="101" x="1113.5" y="39.292">Battery Widget</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="1106.5" y="424.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="101" x="1113.5" y="444.1826">Battery Widget</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="46.5938" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="1235.5" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="80" x="1242.5" y="22.9951">Event Store</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="49" x="1258" y="39.292">Battery</text><rect fill="#FEFECE" filter="url(#f1b9c2dncdp5dx)" height="46.5938" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="1235.5" y="424.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="80" x="1242.5" y="444.1826">Event Store</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="49" x="1258" y="460.4795">Battery</text><polygon fill="#A80036" points="254,81.7266,264,85.7266,254,89.7266,258,85.7266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="71" x2="260" y1="85.7266" y2="85.7266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="55" x="78" y="80.6606">Interrupt</text><polygon fill="#A80036" points="82,110.8594,72,114.8594,82,118.8594,78,114.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="76" x2="265" y1="114.8594" y2="114.8594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="171" x="88" y="109.7935">Store status to EventStore</text><polygon fill="#A80036" points="1272.5,139.9922,1282.5,143.9922,1272.5,147.9922,1276.5,143.9922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="71" x2="1278.5" y1="143.9922" y2="143.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="53" x="78" y="138.9263">modify()</text><polygon fill="#A80036" points="473,169.125,483,173.125,473,177.125,477,173.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="266" x2="479" y1="173.125" y2="173.125"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="273" y="168.0591">BatteryStatusChangeMessage</text><path d="M414.5,188.125 L562.5,188.125 L562.5,195.125 L552.5,205.125 L414.5,205.125 L414.5,188.125 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="103.5313" style="stroke: #000000; stroke-width: 2.0;" width="468.5" x="414.5" y="188.125"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="429.5" y="201.1919">If Discharging</text><polygon fill="#A80036" points="692,222.3906,702,226.3906,692,230.3906,696,226.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="485" x2="698" y1="226.3906" y2="226.3906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="492" y="221.3247">BatteryStatusChangeMessage</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="704" x2="746" y1="270.6563" y2="270.6563"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="746" x2="746" y1="270.6563" y2="283.6563"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="705" x2="746" y1="283.6563" y2="283.6563"/><polygon fill="#A80036" points="715,279.6563,705,283.6563,715,287.6563,711,283.6563" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="160" x="711" y="250.4575">If State::ShutdownReady:</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="154" x="715" y="265.5903">state = State:Shutdown</text><polygon fill="#A80036" points="866,315.7891,876,319.7891,866,323.7891,870,319.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="485" x2="872" y1="319.7891" y2="319.7891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="195" x="492" y="314.7231">BatteryStatusChangeMessage</text><polygon fill="#A80036" points="992,344.9219,1002,348.9219,992,352.9219,996,348.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="878" x2="998" y1="348.9219" y2="348.9219"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="102" x="885" y="343.856">updateBattery()</text><polygon fill="#A80036" points="1015,374.0547,1005,378.0547,1015,382.0547,1011,378.0547" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1272.5,374.0547,1282.5,378.0547,1272.5,382.0547,1276.5,378.0547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1009" x2="1278.5" y1="378.0547" y2="378.0547"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="31" x="1021" y="372.9888">get()</text><polygon fill="#A80036" points="1154,403.1875,1164,407.1875,1154,411.1875,1158,407.1875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1004" x2="1160" y1="407.1875" y2="407.1875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="138" x="1011" y="402.1216">show(batteryContext)</text><!--MD5=[ca8e942ddae7e078a8959b4a48897e37]
@startuml
skinparam BackgroundColor F0F0F0
participant "Battery Charger" as bc
participant "Worker Event" as we
participant "Event Manager" as evm
participant "System Manager" as sm
participant "Current application" as ca
participant "TopBar" as tb
participant "Battery Widget" as bw
participant "Event Store\nBattery" as es

bc -> we : Interrupt
we -> bc : Store status to EventStore
bc -> es : modify()
we -> evm : BatteryStatusChangeMessage
group If Discharging
    evm -> sm : BatteryStatusChangeMessage
    sm -> sm : If State::ShutdownReady:\n state = State:Shutdown
end
evm -> ca : BatteryStatusChangeMessage
ca -> tb : updateBattery()
tb <-> es : get() 
tb -> bw : show(batteryContext)

@enduml

PlantUML version 1.2020.02(Sun Mar 01 05:22:07 EST 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.12+7-post-Debian-2
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>