urtware / doc / classdiagrams / rpc.svg @ 1f7ffcff
History | View | Annotate | Download (9.799 KB)
1 | dd31cb03 | Thomas Schöpping | <?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="387px" preserveAspectRatio="none" style="width:655px;height:387px;" version="1.1" viewBox="0 0 655 387" width="655px" zoomAndPan="magnify"><defs><filter height="300%" id="f1mxz0fta70cve" 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><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="286" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="277" x="192" y="37.6611">Remote Procedure Call System</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6] |
---|---|---|---|
2 | class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#f1mxz0fta70cve)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="81.5" y="315.9063"/><ellipse cx="249.75" cy="331.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M253.9844,327.6719 L248.7031,327.6719 L248.7031,330.3438 L253.5,330.3438 L253.5,332.5 L248.7031,332.5 L248.7031,337.9063 L246.2656,337.9063 L246.2656,325.5156 L253.9844,325.5156 L253.9844,327.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="270.25" y="336.0605">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="82.5" x2="531.5" y1="347.9063" y2="347.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="82.5" x2="531.5" y1="355.9063" y2="355.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="87.5" y="370.1167">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735] |
||
3 | class urt_service_t--><rect fill="#FEFECE" filter="url(#f1mxz0fta70cve)" height="205.6563" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="6" y="49.9063"/><ellipse cx="263.25" cy="65.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M262.7344,66.4688 Q260.875,65.7656 260.2188,65 Q259.5781,64.2188 259.5781,62.9063 Q259.5781,61.2188 260.6563,60.25 Q261.7344,59.2813 263.6094,59.2813 Q264.4688,59.2813 265.3125,59.4844 Q266.1719,59.6719 267.0156,60.0625 L267.0156,62.4531 Q266.2344,61.8906 265.4063,61.6094 Q264.5938,61.3125 263.7969,61.3125 Q262.9219,61.3125 262.4375,61.6719 Q261.9688,62.0313 261.9688,62.6875 Q261.9688,63.2031 262.3125,63.5469 Q262.6563,63.875 263.75,64.2813 L264.8125,64.6875 Q266.2969,65.2344 267,66.1406 Q267.7188,67.0469 267.7188,68.4219 Q267.7188,70.2969 266.6094,71.2188 Q265.5,72.1406 263.25,72.1406 Q262.3281,72.1406 261.4063,71.9219 Q260.4844,71.7031 259.625,71.2813 L259.625,68.75 Q260.5938,69.4375 261.5156,69.7813 Q262.4375,70.125 263.3281,70.125 Q264.2344,70.125 264.7344,69.7188 Q265.2344,69.2969 265.2344,68.5625 Q265.2344,68 264.8906,67.5938 Q264.5625,67.1719 263.9375,66.9219 L262.7344,66.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="283.75" y="70.0605">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="607" y1="81.9063" y2="81.9063"/><ellipse cx="17" cy="92.9063" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="26" y="96.1167">next : urt_service_t*</text><ellipse cx="17" cy="105.7109" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="26" y="108.9214">id : urt_serviceid_t</text><ellipse cx="17" cy="118.5156" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="26" y="121.7261">lock : urt_osMutex_t</text><ellipse cx="17" cy="131.3203" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="26" y="134.5308">callback : urt_servicefunc_t*</text><ellipse cx="17" cy="160.9297" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="26" y="164.1401">sumDurations : uint64_t</text><ellipse cx="17" cy="173.7344" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="26" y="176.9448">numCalls : uint64_t</text><ellipse cx="17" cy="186.5391" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="26" y="189.7495">numTimeouts : uint64_t</text><ellipse cx="17" cy="199.3438" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="26" y="202.5542">minDuration : urt_delay_t</text><ellipse cx="17" cy="212.1484" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="26" y="215.3589">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="7" x2="211" y1="147.5273" y2="147.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="211" y="150.8354">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="403" x2="607" y1="147.5273" y2="147.5273"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="607" y1="221.9531" y2="221.9531"/><ellipse cx="17" cy="232.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="576" x="26" y="236.1636">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="17" cy="245.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="557" x="26" y="248.9683">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[05f2c35569573d3273c65d3342945557] |
||
4 | reverse link urt_service_t to urt_service_t--><path d="M620.6339,130.5781 C634.7535,136.2537 643,143.6965 643,152.9063 C643,164.5782 629.7552,173.4119 608.0965,179.4074 " fill="none" id="urt_service_t<-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="608.0965,126.4051,612.5263,132.0952,619.4824,130.1947,615.0527,124.5046,608.0965,126.4051" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="616.2006" y="122.5752">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="616.4131" y="176.9853">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a] |
||
5 | reverse link urt_service_t to urt_servicefunc_t--><path d="M307,269.3595 C307,286.4366 307,302.6584 307,315.7732 " fill="none" id="urt_service_t<-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="307,256.1712,303,262.1712,307,268.1712,311,262.1712,307,256.1712" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="298.7313" y="275.6961">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="280.525" y="305.0089">0..1</text><!--MD5=[53df50d95b69ed2513ef266da8b5a822] |
||
6 | 4d55cea4 | Thomas Schöpping | @startuml |
7 | |||
8 | title **µRtWare**\nRemote Procedure Call System |
||
9 | |||
10 | |||
11 | |||
12 | |||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
20 | |||
21 | |||
22 | 056e40d2 | Thomas Schöpping | class urt_servicefunc_t <<F,E0E0E0>> { |
23 | urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t |
||
24 | 4d55cea4 | Thomas Schöpping | } |
25 | |||
26 | 056e40d2 | Thomas Schöpping | class urt_service_t <<S,BFAFFF>> { |
27 | + {field} next : urt_service_t* |
||
28 | + {field} id : urt_serviceid_t |
||
29 | + {field} lock : urt_osMutex_t |
||
30 | + {field} callback : urt_servicefunc_t* |
||
31 | ee83a495 | Thomas Schöpping | .. URT_CFG_RPC_PROFILING == true .. |
32 | 056e40d2 | Thomas Schöpping | + {field} sumDurations : uint64_t |
33 | + {field} numCalls : uint64_t |
||
34 | + {field} numTimeouts : uint64_t |
||
35 | + {field} minDuration : urt_delay_t |
||
36 | + {field} maxDuration : urt_delay_t |
||
37 | 4d55cea4 | Thomas Schöpping | __ |
38 | 056e40d2 | Thomas Schöpping | + {method} urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t |
39 | + {method} urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t |
||
40 | 4d55cea4 | Thomas Schöpping | } |
41 | |||
42 | |||
43 | |||
44 | |||
45 | urt_service_t "1" o- - "0..1" urt_service_t |
||
46 | urt_service_t "1" o- - "0..1" urt_servicefunc_t |
||
47 | |||
48 | |||
49 | |||
50 | @enduml |
||
51 | |||
52 | PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020) |
||
53 | (GPL source distribution) |
||
54 | Java Runtime: OpenJDK Runtime Environment |
||
55 | JVM: OpenJDK 64-Bit Server VM |
||
56 | Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
||
57 | Operating System: Linux |
||
58 | Default Encoding: UTF-8 |
||
59 | Language: en |
||
60 | Country: US |
||
61 | --></g></svg> |