From 878010b9e7ee0d0859aa91935253fcd36ace5171 Mon Sep 17 00:00:00 2001 From: Daniele Pallastrelli Date: Mon, 18 May 2020 11:49:54 +0200 Subject: [PATCH] Update UML diagrams --- doc/uml/cli.uml | 202 ++++++++++++++++++++++++------------- doc/uml/cmdhandlers.png | Bin 13626 -> 15329 bytes doc/uml/implementation.png | Bin 35876 -> 40967 bytes examples/pluginmanager.cpp | 18 ++-- 4 files changed, 139 insertions(+), 81 deletions(-) diff --git a/doc/uml/cli.uml b/doc/uml/cli.uml index 67aeaae..c091c36 100644 --- a/doc/uml/cli.uml +++ b/doc/uml/cli.uml @@ -23,7 +23,7 @@ 54 clMaroon -$00B9FFFF +$008CC7FF 240 428 141 @@ -54,7 +54,7 @@ clMaroon -$00B9FFFF +$008CC7FF 884 656 96 @@ -85,7 +85,7 @@ clMaroon -$00B9FFFF +$008CC7FF 1028 780 98 @@ -116,7 +116,7 @@ clMaroon -$00B9FFFF +$00CEFFFF 20 364 117 @@ -232,11 +232,11 @@ clMaroon -$00B9FFFF +$00CEFFFF 128 240 -235 -69 +177 +108 /UrM5RiBaEWbPL98ub98UAAA @@ -265,7 +265,7 @@ clMaroon $00B9FFFF lsRectilinear -240,464;148,464;148,308 +240,464;148,464;148,347 Zno6bwEZ5EKFk3aeXetY9wAA qA3b0+NHQU27Zrzg7HfCHAAA cAYfTB+XvkKH0Itv3nkBcAAA @@ -460,7 +460,7 @@ clMaroon -$00B9FFFF +$00CEFFFF 320 332 114 @@ -576,7 +576,7 @@ clMaroon -$00B9FFFF +$00CEFFFF 136 932 113 @@ -607,7 +607,7 @@ clMaroon -$00B9FFFF +$00ADD39C 584 776 105 @@ -638,11 +638,11 @@ clMaroon -$00B9FFFF +$00ADD39C 396 652 118 -78 +82 k0xzFwLELEuiW5O6+cJeKgAA @@ -669,7 +669,7 @@ clMaroon -$00B9FFFF +$00ADD39C 348 784 129 @@ -785,11 +785,11 @@ clMaroon -$00B9FFFF -276 -44 -111 -110 +$008CC7FF +240 +4 +159 +121 rqTRAbHzXEeTqtzvTlgWDAAA @@ -797,7 +797,7 @@ Command -<<interface>> +False False @@ -903,7 +903,7 @@ clMaroon $00B9FFFF lsRectilinear -204,240;204,192;320,192;320,153 +204,240;204,192;320,192;320,124 AbGRAofdsEW+HY6wGXZJ7gAA TJQnXCAtM0CiIztcoStuBwAA qA3b0+NHQU27Zrzg7HfCHAAA @@ -928,16 +928,16 @@ clMaroon -$00B9FFFF -380 -240 -114 -46 +$008CC7FF +344 +208 +190 +98 rG0fcxSj80yx3GtufO+N+QAA 1 -FuncCmd +VariadicFunctionCommand False @@ -953,7 +953,6 @@ rG0fcxSj80yx3GtufO+N+QAA -False rG0fcxSj80yx3GtufO+N+QAA @@ -961,7 +960,7 @@ clMaroon $00B9FFFF lsRectilinear -436,240;436,192;320,192;320,153 +436,208;436,192;320,192;320,124 L9rHOnMeH0KgNq/10C/YPQAA TJQnXCAtM0CiIztcoStuBwAA WURZJo3RS0+taskAO6luCgAA @@ -988,7 +987,7 @@ clMaroon $00B9FFFF lsRectilinear -386,92;524,92;524,444;380,444 +398,92;548,92;548,444;380,444 4TZSJyDzSki5OJ8lIU9OjwAA cAYfTB+XvkKH0Itv3nkBcAAA TJQnXCAtM0CiIztcoStuBwAA @@ -1071,7 +1070,7 @@ clMaroon -$00B9FFFF +$008CC7FF 876 536 106 @@ -1129,7 +1128,7 @@ clMaroon -$00B9FFFF +$008CC7FF 672 644 119 @@ -1245,7 +1244,7 @@ clMaroon -$00B9FFFF +$00ADD39C 708 776 96 @@ -1330,7 +1329,7 @@ clMaroon -$00B9FFFF +$00ADD39C 820 916 113 @@ -1388,7 +1387,7 @@ clMaroon -$00B9FFFF +$008CC7FF 884 780 99 @@ -1533,7 +1532,7 @@ clMaroon $00B9FFFF lsRectilinear -444,729;444,784 +444,733;444,784 ivhaI9tpsEyvRvOTq9QsUQAA 7Ef3BQms7EmzQhyYeH2k3gAA wezzfHtUP0CYmR9LnpXbfgAA @@ -1616,7 +1615,7 @@ clMaroon -$00B9FFFF +$00CEFFFF 1024 1000 108 @@ -1728,7 +1727,7 @@ clMaroon -$00B9FFFF +$00CEFFFF 264 932 160 @@ -1844,7 +1843,7 @@ clMaroon -$00B9FFFF +$008CC7FF 636 864 114 @@ -2130,7 +2129,7 @@ clMaroon -$00B9FFFF +$00CEFFFF 16 932 104 @@ -2163,7 +2162,7 @@ clMaroon $00B9FFFF lsRectilinear -200,308;200,436;240,436 +200,347;200,436;240,436 nEQu03VLzkyBIx0cKaOFRwAA cAYfTB+XvkKH0Itv3nkBcAAA qA3b0+NHQU27Zrzg7HfCHAAA @@ -2354,16 +2353,16 @@ clMaroon -$00B9FFFF +$00CEB694 32 128 -205 +206 43 dR8hMITdIE2c6JAEDzzvuQAA 1 -vector<unique_ptr<Command> > +vector<shared_ptr<Command> > False @@ -2387,7 +2386,7 @@ clMaroon $00B9FFFF lsRectilinear -276,88;160,88;160,128 +240,88;160,88;160,128 mEBpFWlDykeAAKr5TN6GHgAA BFVh+zTQWEu2oaVLiuqVtwAA TJQnXCAtM0CiIztcoStuBwAA @@ -2483,7 +2482,6 @@ TJZ0qPGeNky9zPtc27Q8RAAA -False 1,5707963267949 30 <<shared>> @@ -2565,7 +2563,7 @@ 13 clMaroon -$00B9FFFF +$00CEFFFF 352 316 86 @@ -2596,7 +2594,7 @@ clMaroon -$00B9FFFF +$00CEB694 348 228 91 @@ -2712,11 +2710,11 @@ clMaroon -$00B9FFFF +$008CC7FF 124 20 -96 -95 +159 +121 rqTRAbHzXEeTqtzvTlgWDAAA @@ -2724,7 +2722,7 @@ Command -<<interface>> +False False @@ -2745,7 +2743,7 @@ clMaroon $00B9FFFF lsRectilinear -392,228;392,96;219,96 +392,228;392,96;282,96 p1+YzFlMQUeZgp3RIv8LgAAA Wh5g5CJRq0yHHXM+WzY7/QAA KaSTaKaxIk6b+HqEyMIOqQAA @@ -2828,7 +2826,7 @@ clMaroon -$00B9FFFF +$0094B6B5 468 144 206 @@ -2944,11 +2942,11 @@ clMaroon -$00B9FFFF +$0094B6B5 52 408 235 -69 +108 /UrM5RiBaEWbPL98ub98UAAA @@ -3062,7 +3060,7 @@ clMaroon $00B9FFFF lsRectilinear -172,408;172,114 +172,408;172,140 AbGRAofdsEW+HY6wGXZJ7gAA Wh5g5CJRq0yHHXM+WzY7/QAA hxpisoll2EK98NRuYDJSkQAA @@ -3116,7 +3114,7 @@ clMaroon $00B9FFFF lsRectilinear -219,44;556,44;556,144 +282,44;556,44;556,144 mEBpFWlDykeAAKr5TN6GHgAA lVvxz66RnE24k/pQjAKsPwAA Wh5g5CJRq0yHHXM+WzY7/QAA @@ -3418,24 +3416,42 @@ DIcbveYKv0md9liEHL/iQQAA 1 AbGRAofdsEW+HY6wGXZJ7gAA -2 - +5 + +GetCompletionRecursive +/UrM5RiBaEWbPL98ub98UAAA +1 + +line +V4Iiomzg30ebs5XyJanftwAA + + + GetCompletions /UrM5RiBaEWbPL98ub98UAAA +1 + +line +KuFlCWQeSkScSixClB0ODwAA - + + Insert /UrM5RiBaEWbPL98ub98UAAA -2 - +1 + pdkReturn bBIcCQKWV0ixVUq19uV1XQAA YTlkPPvlzE2CcxDfOrVSpwAA - -unique_ptr<Command> -bBIcCQKWV0ixVUq19uV1XQAA + +Exec +/UrM5RiBaEWbPL98ub98UAAA + + +Help +/UrM5RiBaEWbPL98ub98UAAA 6 i2Z3wQcSp0+fyFLOrqrKOwAA @@ -3584,7 +3600,7 @@ GSfST7YktkCZZRTCzfeZfQAA z3eJDl7ylUSYd2pkk49hEgAA C5aHiT2+QUigN7/IKHMmxwAA -2 +3 Register k0xzFwLELEuiW5O6+cJeKgAA @@ -3598,6 +3614,10 @@ SetLine k0xzFwLELEuiW5O6+cJeKgAA + +ResetCursor +k0xzFwLELEuiW5O6+cJeKgAA + 1 odPh4KR73EOr2nyHtHHmdAAA @@ -3646,7 +3666,6 @@ Command -interface NLtrxd0pREa5saxYXXatOgAA 8 TJQnXCAtM0CiIztcoStuBwAA @@ -3660,23 +3679,44 @@ 2 AbGRAofdsEW+HY6wGXZJ7gAA L9rHOnMeH0KgNq/10C/YPQAA -3 +5 Exec +True rqTRAbHzXEeTqtzvTlgWDAAA Help +True rqTRAbHzXEeTqtzvTlgWDAAA -GetCompletion +GetCompletionRecursive +rqTRAbHzXEeTqtzvTlgWDAAA +1 + +line +A2HHO8ecSkmJqVMW5Q0B6wAA + + + +Enable +rqTRAbHzXEeTqtzvTlgWDAAA + + +Disable rqTRAbHzXEeTqtzvTlgWDAAA 3 upOczi1LF0+L/7o0OJGFYwAA xtrzKaPgO0K4L5noNkvAFgAA d8Y3B2ER6Euyr7Y/S9E83QAA +1 + +name +vkPrivate +rqTRAbHzXEeTqtzvTlgWDAAA + parent @@ -3734,15 +3774,33 @@ V0fKgLPs1k6GO2/JDtO5FgAA -FuncCmd +VariadicFunctionCommand NLtrxd0pREa5saxYXXatOgAA 4 WURZJo3RS0+taskAO6luCgAA 2jAaFN4A70eMiQ8uC5hpIwAA 3pHdWrqGIUeBHxoHgf/3NwAA I7GRmwGW7UOecSDQReAKGgAA +2 + +F +rG0fcxSj80yx3GtufO+N+QAA + + +... Args +rG0fcxSj80yx3GtufO+N+QAA + 1 L9rHOnMeH0KgNq/10C/YPQAA +2 + +Exec +rG0fcxSj80yx3GtufO+N+QAA + + +Help +rG0fcxSj80yx3GtufO+N+QAA + NLtrxd0pREa5saxYXXatOgAA @@ -4286,7 +4344,7 @@ YTlkPPvlzE2CcxDfOrVSpwAA 1 -s3j1dgZEWU2+YVyCRN4q2wAA +n4PqwQvTzkSsBYQMwbDIGAAA 1 cAiGBKdppEyupFcXCASrRwAA diff --git a/doc/uml/cmdhandlers.png b/doc/uml/cmdhandlers.png index 8d5b8ac3a4287547fb60b4070b711c5d5b47ad75..57e40765bc8f247ff11d7dd8472656d236231dbb 100644 GIT binary patch literal 15329 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 literal 13626 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 diff --git a/doc/uml/implementation.png b/doc/uml/implementation.png index 8a40c6c92031813ceee72e97f16b13f8db39bc27..6c0930cdb5a52f14542cfa7fb673824cd6da9f9e 100644 GIT binary patch literal 40967 zcmdqJc{tST|39wf)M=G*NFk>**-0Y1R%(b4#yS~Wn#q!7Fqk?L6LKnBF(gT{j-9a- zgX~4dPLh2$7-KNMdn}#K`}6x=*Z24NeE;}fzw0`k%j-3-`@Wy|bGx7S{d_!c{0(i5 z1AC9|Wn*JIaP8`4JvO$Te&C?P}#mLLDKt_6dePVg_x${ zE4K~e-YX^*nHlsc>!=KWNYDsnktO4L9>0x^tv(8}gN-dp7P^a#?KBFupN;JnC5(rS z?L(@FG#lG}V|^s}Hv26Z{NMKadV`n$vj)M|tMeZocusHEpJlhmWxHRQM80a6Kwj%_ z^!J?pjf*i#Gy>!Q%?4G^3WGmm{kiLZ>(6$wLovO!X54c1yMJBvP>I-%t+wAKi8|T> zq^wqY+gMPj1*57MldK7*q7@AhH0Fqe$65x+Wt6xM5k03hj{rWLz6%SszG8}`^?9P~ zsUK^r#`Aq=!avqg<4ns|SB7SDX^v`cw+9Dy=Vu3nIw1B7A=XYaW|QqOd9l9t>JM~c zz7%yRO&`0BZYeY@wNd(@2nhKwFD(6x>n=V#RDRIyYs}mBo^L6h8vH$_)D^v6du-1u z>|un33A3`Qy5T{A)EuO4J31-bM!0JmiynSJkAxw9!K^(w>+mtTfZ{Ccz5Y*g)*!sZ zkHpycyhD4T6khX`b0i~OAgz|SfT1~1Lq#QL7<6$Au`GELyw$ydJSo-*5knBI$P;9r zFnF&~!@f(*334yv=xsUHC|6jsHbcg{axwbF+$ZeZk;6|8rYSFcTbzNAyv3O(j4_A9 zw`PLDOCJY~-dw;x6^BNg{Ga`qs*Z2K9*)`zdO3L>bZCXVcIMRosm^~PFEt*zNN*TW z+lNA6aRXk984E#&B?b0v$oT@bZCwpcoz3$s;8X2hE+Bp!59nJ1B1x0TPRS_2k+KJ^ zsH%-G0h7-k4dbafYJfydOAQ;l4fpJD6zJ~oTCQnyltN+Z` zY$eBs`h>b5wX>4b=m>=(g3*!e*JQT)XMrNgdbuNY@HRfJeA}?8PBobjnS*jhTis#B zh>OsU&mE4T`}sNRY=tcL(CgKQE&zqM2ReXahvqHJH%4c~pe4V3c}bGbA@3TJJ}M9` zu_eQlcA;yVA8X>F|HD61bdl8F-`-vX9qs|6*G0jf1^+iXNBKe*Yeub%@?sTp=4Sh1 zSZwrEJBZ&BMW;T#$AcRFylo%T!e{misxNB9f%nK_bVZwmBDFm-l7e%d)&R1OrtNsj zy*bg;9$4yAEsT+=m0@KZEg`A&s2gVL^SZ5jszI*(>^hM=RgC>MbPx3{WywV|KKW>w z4?QEA)$x^q0QTrIm9SMR@sMhnr}yM)S3?j*%A$bJ%RvKw-48g*=2zsalo1HZx_Kdq zoZxZy98rpkGMGrx*yF(7%Y zYP6+)ZqO&yOVXkNp5mHhQN9(Hd5nH7jwHCxB9K>ZAiS@mn%7;b=|DA*Tqs*bB;%k7SS#Oyxz>f)B*!z1B+%2nx&NLq?iZKgelJ=PuV zdta^K-?ywmgm`j`;}TkUAKz@!8Q+&LlbrVj7?wX(;j@(+re;L

XZ78iXK_9WdT# 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 U{E-B~j6wtSlG?>|`CAYE7x$3N)Bpeg literal 35876 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%0D9(mU0vt1qUB%H9Q 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 Arithmetic(Menu* menu) { auto subMenu = make_unique

(Name()); - subMenu -> Insert( + subMenu->Insert( "add", {"first_term", "second_term"}, [](std::ostream& out, int x, int y) { out << x << " + " << y << " = " << (x+y) << "\n"; }, "Print the sum of the two numbers" ); - subMenu -> Insert( + subMenu->Insert( "add", [](std::ostream& out, int x, int y, int z) { out << x << " + " << y << " + " << z << " = " << (x+y+z) << "\n"; }, "Print the sum of the three numbers" ); - subMenu -> Insert( + subMenu->Insert( "sub", {"subtrahend", "minuend"}, [](std::ostream& out, int x, int y) { @@ -193,7 +193,7 @@ class Strings : public RegisteredPlugin Strings(Menu* menu) { auto subMenu = make_unique(Name()); - subMenu -> Insert( + subMenu->Insert( "reverse", {"string_to_revert"}, [](std::ostream& out, const string& arg) { @@ -203,7 +203,7 @@ class Strings : public RegisteredPlugin }, "Print the reverse string" ); - subMenu -> Insert( + subMenu->Insert( "upper", [](std::ostream& out, string arg) { @@ -239,25 +239,25 @@ int main() auto rootMenu = make_unique< Menu >( "cli" ); PluginContainer::Instance().SetMenu(*rootMenu); - rootMenu -> Insert( + rootMenu->Insert( "list", [](std::ostream& out){ PluginRegistry::Instance().Print(out); }, "Print the plugin list" ); - rootMenu -> Insert( + rootMenu->Insert( "loaded", [](std::ostream& out) { PluginContainer::Instance().PrintLoaded(out); }, "Load the plugin specified" ); - rootMenu -> Insert( + rootMenu->Insert( "load", {"plugin_name"}, [](std::ostream&, const string& plugin) { PluginContainer::Instance().Load(plugin); }, "Load the plugin specified" ); - rootMenu -> Insert( + rootMenu->Insert( "unload", {"plugin_name"}, [](std::ostream&, const string& plugin) {