Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / rpc.svg @ 4d55cea4

History | View | Annotate | Download (14.115 KB)

1
<?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="557px" preserveAspectRatio="none" style="width:671px;height:557px;" version="1.1" viewBox="0 0 671 557" width="671px" zoomAndPan="magnify"><defs><filter height="300%" id="fh228s0d9ux2n" 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="294" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="277" x="200" y="37.6611">Remote Procedure Call System</text><!--MD5=[7579d5565d2521d5936cec86ed3dadee]
2
cluster service--><rect fill="#FFFFFF" filter="url(#fh228s0d9ux2n)" height="378" style="stroke: #000000; stroke-width: 1.5;" width="636" x="14" y="168.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="58" x="303" y="183.9014">service</text><!--MD5=[3226071078d8aeaa18fbafa5359ddee6]
3
class urt_servicefunc_t--><rect fill="#FEFECE" filter="url(#fh228s0d9ux2n)" height="60.8047" id="urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="97.5" y="477.9063"/><ellipse cx="265.75" cy="493.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M269.9844,489.6719 L264.7031,489.6719 L264.7031,492.3438 L269.5,492.3438 L269.5,494.5 L264.7031,494.5 L264.7031,499.9063 L262.2656,499.9063 L262.2656,487.5156 L269.9844,487.5156 L269.9844,489.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="106" x="286.25" y="498.0605">urt_servicefunc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="98.5" x2="547.5" y1="509.9063" y2="509.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="98.5" x2="547.5" y1="517.9063" y2="517.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="439" x="103.5" y="532.1167">urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[e60e0f8379a14e7a4a292c65add9d735]
4
class urt_service_t--><rect fill="#FEFECE" filter="url(#fh228s0d9ux2n)" height="222.4609" id="urt_service_t" style="stroke: #A80036; stroke-width: 1.5;" width="602" x="22" y="195.9063"/><ellipse cx="279.25" cy="211.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M278.7344,212.4688 Q276.875,211.7656 276.2188,211 Q275.5781,210.2188 275.5781,208.9063 Q275.5781,207.2188 276.6563,206.25 Q277.7344,205.2813 279.6094,205.2813 Q280.4688,205.2813 281.3125,205.4844 Q282.1719,205.6719 283.0156,206.0625 L283.0156,208.4531 Q282.2344,207.8906 281.4063,207.6094 Q280.5938,207.3125 279.7969,207.3125 Q278.9219,207.3125 278.4375,207.6719 Q277.9688,208.0313 277.9688,208.6875 Q277.9688,209.2031 278.3125,209.5469 Q278.6563,209.875 279.75,210.2813 L280.8125,210.6875 Q282.2969,211.2344 283,212.1406 Q283.7188,213.0469 283.7188,214.4219 Q283.7188,216.2969 282.6094,217.2188 Q281.5,218.1406 279.25,218.1406 Q278.3281,218.1406 277.4063,217.9219 Q276.4844,217.7031 275.625,217.2813 L275.625,214.75 Q276.5938,215.4375 277.5156,215.7813 Q278.4375,216.125 279.3281,216.125 Q280.2344,216.125 280.7344,215.7188 Q281.2344,215.2969 281.2344,214.5625 Q281.2344,214 280.8906,213.5938 Q280.5625,213.1719 279.9375,212.9219 L278.7344,212.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="299.75" y="216.0605">urt_service_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="623" y1="227.9063" y2="227.9063"/><ellipse cx="33" cy="238.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="42" y="242.1167">next : urt_service_t*</text><ellipse cx="33" cy="251.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="42" y="254.9214">id : urt_serviceid_t</text><ellipse cx="33" cy="264.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="42" y="267.7261">lock : urt_osMutex_t</text><ellipse cx="33" cy="277.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="42" y="280.5308">callback : urt_servicefunc_t*</text><ellipse cx="33" cy="306.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="42" y="310.1401">sumDurations : uint64_t</text><ellipse cx="33" cy="319.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="42" y="322.9448">numCalls : uint64_t</text><ellipse cx="33" cy="332.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="42" y="335.7495">numTimeouts : uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23" x2="228.5" y1="293.5273" y2="293.5273"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="228.5" y="296.8354">URT_CFG_RPC_PROFLING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="417.5" x2="623" y1="293.5273" y2="293.5273"/><ellipse cx="33" cy="362.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="143" x="42" y="365.3589">minDuration : urt_delay_t</text><ellipse cx="33" cy="374.9531" 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="42" y="378.1636">maxDuration : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="23" x2="90" y1="348.7461" y2="348.7461"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="466" x="90" y="352.0542">URT_CFG_RPC_PROFILING == true &amp;&amp; URT_CFG_RPC_QOS_JITTERCHECKS == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="556" x2="623" y1="348.7461" y2="348.7461"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="623" y1="384.7578" y2="384.7578"/><ellipse cx="33" cy="395.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="576" x="42" y="398.9683">urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t</text><ellipse cx="33" cy="408.5625" 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="42" y="411.7729">urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t</text><!--MD5=[c49c66e54807645986bdfbce830f97dc]
5
class urt_rpc_t--><rect fill="#FEFECE" filter="url(#fh228s0d9ux2n)" height="86.4141" id="urt_rpc_t" style="stroke: #A80036; stroke-width: 1.5;" width="358" x="144" y="49.9063"/><ellipse cx="291.25" cy="65.9063" fill="#BFAFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M290.7344,66.4688 Q288.875,65.7656 288.2188,65 Q287.5781,64.2188 287.5781,62.9063 Q287.5781,61.2188 288.6563,60.25 Q289.7344,59.2813 291.6094,59.2813 Q292.4688,59.2813 293.3125,59.4844 Q294.1719,59.6719 295.0156,60.0625 L295.0156,62.4531 Q294.2344,61.8906 293.4063,61.6094 Q292.5938,61.3125 291.7969,61.3125 Q290.9219,61.3125 290.4375,61.6719 Q289.9688,62.0313 289.9688,62.6875 Q289.9688,63.2031 290.3125,63.5469 Q290.6563,63.875 291.75,64.2813 L292.8125,64.6875 Q294.2969,65.2344 295,66.1406 Q295.7188,67.0469 295.7188,68.4219 Q295.7188,70.2969 294.6094,71.2188 Q293.5,72.1406 291.25,72.1406 Q290.3281,72.1406 289.4063,71.9219 Q288.4844,71.7031 287.625,71.2813 L287.625,68.75 Q288.5938,69.4375 289.5156,69.7813 Q290.4375,70.125 291.3281,70.125 Q292.2344,70.125 292.7344,69.7188 Q293.2344,69.2969 293.2344,68.5625 Q293.2344,68 292.8906,67.5938 Q292.5625,67.1719 291.9375,66.9219 L290.7344,66.4688 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="311.75" y="70.0605">urt_rpc_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="145" x2="501" y1="81.9063" y2="81.9063"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="152" y="89.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="145" x="164" y="96.1167">_services : urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="145" x2="501" y1="102.7109" y2="102.7109"/><ellipse cx="155" cy="113.7109" 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="168" x="164" y="116.9214">urtRpcInit (void) : urt_status_t</text><ellipse cx="155" cy="126.5156" 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="332" x="164" y="129.7261">urtRpcRetrieveService (id : urt_serviceid_t) : urt_service_t*</text><!--MD5=[05f2c35569573d3273c65d3342945557]
6
reverse link urt_service_t to urt_service_t--><path d="M636.6339,283.6478 C650.7535,289.5599 659,297.3127 659,306.9063 C659,319.0644 645.7552,328.2663 624.0965,334.5116 " fill="none" id="urt_service_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="624.0965,279.301,628.4551,285.0457,635.4344,283.2319,631.0758,277.4872,624.0965,279.301" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="632.2006" y="275.431">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="632.4131" y="332.1081">0..1</text><!--MD5=[586e61fedafd54ae7ea71cebd9f9032a]
7
reverse link urt_service_t to urt_servicefunc_t--><path d="M323,431.053 C323,448.3835 323,464.7364 323,477.9027 " fill="none" id="urt_service_t&lt;-urt_servicefunc_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="323,417.971,319,423.971,323,429.971,327,423.971,323,417.971" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="314.7188" y="438.3629">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="296.375" y="466.6923">0..1</text><!--MD5=[44e85a81cd85acd5638164304275c8f6]
8
reverse link urt_rpc_t to urt_service_t--><path d="M323,149.2193 C323,163.6126 323,179.5972 323,195.709 " fill="none" id="urt_rpc_t&lt;-urt_service_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="323,135.955,319,141.955,323,147.955,327,141.955,323,135.955" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="314.3375" y="156.3707">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="298.1938" y="184.7898">0..1</text><!--MD5=[d55314fac70b0ef172f327e6a48316f4]
9
@startuml
10

    
11
title **µRtWare**\nRemote Procedure Call System
12

    
13

    
14

    
15

    
16

    
17

    
18

    
19

    
20

    
21

    
22

    
23

    
24

    
25
  package "service" <<Rectangle>> {
26
    class urt_servicefunc_t <<F,E0E0E0>> {
27
    urt_servicefunc_t (arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
28
  }
29

    
30
    class urt_service_t <<S,BFAFFF>> {
31
    + {field} next : urt_service_t*
32
    + {field} id : urt_serviceid_t
33
    + {field} lock : urt_osMutex_t
34
    + {field} callback : urt_servicefunc_t*
35
    .. URT_CFG_RPC_PROFLING == true ..
36
    + {field} sumDurations : uint64_t
37
    + {field} numCalls : uint64_t
38
    + {field} numTimeouts : uint64_t
39
    .. URT_CFG_RPC_PROFILING == true && URT_CFG_RPC_QOS_JITTERCHECKS == true ..
40
    + {field} minDuration : urt_delay_t
41
    + {field} maxDuration : urt_delay_t
42
    __
43
    + {method} urtServiceInit(service : urt_service_t*, id : urt_serviceid_t, callback : urt_servicefunc_t*) : urt_status_t
44
    + {method} urtServiceCall(service : urt_service_t*, arg : void*, ret : void*, timeout : urt_delay_t) : urt_status_t
45
  }
46
}
47

    
48
  class urt_rpc_t <<S,BFAFFF>> {
49
  - {field} {static} _services : urt_service_t*
50
  __
51
  + {method} urtRpcInit (void) : urt_status_t
52
  + {method} urtRpcRetrieveService (id : urt_serviceid_t) : urt_service_t*
53
}
54

    
55

    
56

    
57

    
58
urt_service_t "1" o- - "0..1" urt_service_t
59
urt_service_t "1" o- - "0..1" urt_servicefunc_t
60

    
61
urt_rpc_t "1" o- - "0..1" urt_service_t
62

    
63

    
64

    
65
@enduml
66

    
67
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
68
(GPL source distribution)
69
Java Runtime: OpenJDK Runtime Environment
70
JVM: OpenJDK 64-Bit Server VM
71
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
72
Operating System: Linux
73
Default Encoding: UTF-8
74
Language: en
75
Country: US
76
--></g></svg>