Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / service / urtServiceInit.svg @ 77bd2c61

History | View | Annotate | Download (27.243 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="986px" preserveAspectRatio="none" style="width:1112px;height:986px;" version="1.1" viewBox="0 0 1112 986" width="1112px" zoomAndPan="magnify"><defs><filter height="300%" id="f80ugbpvfjoli" 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="510.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="135" x="487.5" y="47.6611">urtServiceInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="558" y="68.6143"/><path d="M225,72.8594 L225,213.9219 L886,213.9219 L886,82.8594 L876,72.8594 L225,72.8594 " fill="#FBFB77" filter="url(#f80ugbpvfjoli)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876,72.8594 L876,82.8594 L886,82.8594 L876,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="475" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="479" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="479" y="89.4263">service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="535" y="89.4263">: urt_service_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="636" x2="886" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="231" y="105.0591">The service to initialize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="231" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="311" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="343" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="492" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="496" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="496" y="134.8247">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="514" y="134.8247">: urt_serviceid_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="619" x2="886" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="258" x="231" y="150.4575">Unique, numeric identifier of the service.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="886" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="886" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="484.5" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="488.5" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="488.5" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="537.5" y="175.0903">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="626.5" x2="886" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="231" y="190.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="284" y="190.7231">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="392" y="190.7231">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="231" y="205.856">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="284" y="205.856">URT_STATUS_SERVICE_DUPLICATE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="359" x="512" y="205.856">if another service with the same identifier already exists.</text><ellipse cx="555.5" cy="243.9219" fill="#000000" filter="url(#f80ugbpvfjoli)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M214,263.9219 L214,440.3828 A0,0 0 0 0 214,440.3828 L470,440.3828 A0,0 0 0 0 470,440.3828 L470,356.1523 L490,352.1523 L470,348.1523 L470,273.9219 L460,263.9219 L214,263.9219 A0,0 0 0 0 214,263.9219 " fill="#FBFB77" filter="url(#f80ugbpvfjoli)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M460,263.9219 L460,273.9219 L470,273.9219 L460,263.9219 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="225.5" cy="276.5547" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="231" y="280.9888">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="267" y="280.9888">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="282" y="280.9888">NULL</text><ellipse cx="225.5" cy="291.6875" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="14" x="231" y="296.1216">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="249" y="296.1216">← id</text><ellipse cx="225.5" cy="306.8203" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="231" y="311.2544">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="312" y="311.2544">lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="342" y="311.2544">)</text><ellipse cx="225.5" cy="321.9531" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="147" x="231" y="326.3872">requestQueue_front</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="382" y="326.3872">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="397" y="326.3872">NULL</text><ellipse cx="225.5" cy="337.0859" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="168" x="231" y="341.52">requestQueue_hrtBack</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="403" y="341.52">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="418" y="341.52">NULL</text><ellipse cx="225.5" cy="352.2188" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="173" x="231" y="356.6528">requestQueue_fsrtBack</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="408" y="356.6528">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="423" y="356.6528">NULL</text><ellipse cx="225.5" cy="367.3516" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="147" x="231" y="371.7856">requestQueue_back</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="382" y="371.7856">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="397" y="371.7856">NULL</text><ellipse cx="225.5" cy="382.4844" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="231" y="386.9185">urtEventSourceInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="73" x="354" y="386.9185">evtSource</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="427" y="386.9185">)</text><ellipse cx="225.5" cy="397.6172" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="231" y="402.0513">urtEventListenerInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="82" x="360" y="402.0513">evtListener</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="442" y="402.0513">)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="214" x2="228.5" y1="412.6836" y2="412.6836"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="232.5" y="416.6841">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="455.5" x2="470" y1="412.6836" y2="412.6836"/><ellipse cx="225.5" cy="427.8828" fill="#000000" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 0.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="67" x="231" y="432.3169">numCalls</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="302" y="432.3169">← 0</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="490" y="335.168"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="500" y="356.3066">initialize members</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="223" x="444" y="460.3828"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="203" x="454" y="481.5215">register event listener to source</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="517" y="514.3516"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="527" y="535.4902">lock core</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="485.5" y="568.3203"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="495.5" y="589.459">access first service</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="471.5" y="679.6089"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="481.5" y="700.7476">proceed to next service</text><polygon fill="#FEFECE" filter="url(#f80ugbpvfjoli)" points="487.5,622.2891,623.5,622.2891,635.5,635.0938,623.5,647.8984,487.5,647.8984,475.5,635.0938,487.5,622.2891" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="559.5" y="658.1089">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="487.5" y="632.4995">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="569.5" y="632.4995">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="487.5" y="645.3042">and service ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="461.5" y="632.4995">no</text><polygon fill="#FEFECE" filter="url(#f80ugbpvfjoli)" points="153,755.5776,293,755.5776,305,767.5776,293,779.5776,153,779.5776,141,767.5776,153,755.5776" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="789.7881">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="153" y="771.3857">Current service is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="259" y="771.3857">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="287" y="771.3857">?</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="100" y="811.2881"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="226" x="110" y="832.4268">append self to core's list of services</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="880.2568"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="901.3955">unlock core</text><path d="M10,949.2256 L10,974.3584 A0,0 0 0 0 10,974.3584 L192,974.3584 A0,0 0 0 0 192,974.3584 L192,967.2256 L212,961.792 L192,959.2256 L192,959.2256 L182,949.2256 L10,949.2256 A0,0 0 0 0 10,949.2256 " fill="#FBFB77" filter="url(#f80ugbpvfjoli)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,949.2256 L182,959.2256 L192,959.2256 L182,949.2256 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="966.2925">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="966.2925">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="966.2925">:</text><ellipse cx="223" cy="961.792" fill="#FFFFFF" filter="url(#f80ugbpvfjoli)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="961.792" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f80ugbpvfjoli)" points="494.5,755.5776,663.5,755.5776,675.5,767.5776,663.5,779.5776,494.5,779.5776,482.5,767.5776,494.5,755.5776" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="583" y="789.7881">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="494.5" y="771.3857">Current service ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="675.5" y="764.9834">no</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="456.5" y="811.2881"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="225" x="466.5" y="832.4268">insert self in front of current service</text><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="532.5" y="880.2568"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="542.5" y="901.3955">unlock core</text><path d="M366,949.2256 L366,974.3584 A0,0 0 0 0 366,974.3584 L548,974.3584 A0,0 0 0 0 548,974.3584 L548,967.2256 L568,961.792 L548,959.2256 L548,959.2256 L538,949.2256 L366,949.2256 A0,0 0 0 0 366,949.2256 " fill="#FBFB77" filter="url(#f80ugbpvfjoli)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,949.2256 L538,959.2256 L548,959.2256 L538,949.2256 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="372" y="966.2925">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="425" y="966.2925">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="529" y="966.2925">:</text><ellipse cx="579" cy="961.792" fill="#FFFFFF" filter="url(#f80ugbpvfjoli)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="579" cy="961.792" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f80ugbpvfjoli)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="1008" y="842.3701"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="1018" y="863.5088">unlock core</text><path d="M721.5,911.3389 L721.5,936.4717 A0,0 0 0 0 721.5,936.4717 L1023.5,936.4717 A0,0 0 0 0 1023.5,936.4717 L1023.5,929.3389 L1043.5,923.9053 L1023.5,921.3389 L1023.5,921.3389 L1013.5,911.3389 L721.5,911.3389 A0,0 0 0 0 721.5,911.3389 " fill="#FBFB77" filter="url(#f80ugbpvfjoli)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1013.5,911.3389 L1013.5,921.3389 L1023.5,921.3389 L1013.5,911.3389 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="727.5" y="928.4058">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="780.5" y="928.4058">URT_STATUS_SERVICE_DUPLICATE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1004.5" y="928.4058">:</text><ellipse cx="1054.5" cy="923.9053" fill="#FFFFFF" filter="url(#f80ugbpvfjoli)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1054.5" cy="923.9053" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="213.9219" y2="233.9219"/><polygon fill="#A80036" points="551.5,223.9219,555.5,233.9219,559.5,223.9219,555.5,227.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="253.9219" y2="335.168"/><polygon fill="#A80036" points="551.5,325.168,555.5,335.168,559.5,325.168,555.5,329.168" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="369.1367" y2="460.3828"/><polygon fill="#A80036" points="551.5,450.3828,555.5,460.3828,559.5,450.3828,555.5,454.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="494.3516" y2="514.3516"/><polygon fill="#A80036" points="551.5,504.3516,555.5,514.3516,559.5,504.3516,555.5,508.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="548.3203" y2="568.3203"/><polygon fill="#A80036" points="551.5,558.3203,555.5,568.3203,559.5,558.3203,555.5,562.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="647.8984" y2="679.6089"/><polygon fill="#A80036" points="551.5,669.6089,555.5,679.6089,559.5,669.6089,555.5,673.6089" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="713.5776" y2="723.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="651.5" y1="723.5776" y2="723.5776"/><polygon fill="#A80036" points="647.5,687.7886,651.5,677.7886,655.5,687.7886,651.5,683.7886" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="651.5" y1="635.0938" y2="723.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="635.5" y1="635.0938" y2="635.0938"/><polygon fill="#A80036" points="645.5,631.0938,635.5,635.0938,645.5,639.0938,641.5,635.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="475.5" x2="459.5" y1="635.0938" y2="635.0938"/><polygon fill="#A80036" points="455.5,673.7886,459.5,683.7886,463.5,673.7886,459.5,677.7886" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="459.5" x2="459.5" y1="635.0938" y2="735.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="459.5" x2="555.5" y1="735.5776" y2="735.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="735.5776" y2="740.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="602.2891" y2="622.2891"/><polygon fill="#A80036" points="551.5,612.2891,555.5,622.2891,559.5,612.2891,555.5,616.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="845.2568" y2="880.2568"/><polygon fill="#A80036" points="219,870.2568,223,880.2568,227,870.2568,223,874.2568" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="914.2256" y2="950.792"/><polygon fill="#A80036" points="219,940.792,223,950.792,227,940.792,223,944.792" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="845.2568" y2="880.2568"/><polygon fill="#A80036" points="575,870.2568,579,880.2568,583,870.2568,579,874.2568" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="914.2256" y2="950.792"/><polygon fill="#A80036" points="575,940.792,579,950.792,583,940.792,579,944.792" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1054.5" x2="1054.5" y1="876.3389" y2="912.9053"/><polygon fill="#A80036" points="1050.5,902.9053,1054.5,912.9053,1058.5,902.9053,1054.5,906.9053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="779.5776" y2="811.2881"/><polygon fill="#A80036" points="219,801.2881,223,811.2881,227,801.2881,223,805.2881" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="779.5776" y2="811.2881"/><polygon fill="#A80036" points="575,801.2881,579,811.2881,583,801.2881,579,805.2881" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="305" x2="482.5" y1="767.5776" y2="767.5776"/><polygon fill="#A80036" points="472.5,763.5776,482.5,767.5776,472.5,771.5776,476.5,767.5776" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="223" y1="740.5776" y2="740.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="740.5776" y2="755.5776"/><polygon fill="#A80036" points="219,745.5776,223,755.5776,227,745.5776,223,749.5776" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="675.5" x2="1054.5" y1="767.5776" y2="767.5776"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1054.5" x2="1054.5" y1="767.5776" y2="842.3701"/><polygon fill="#A80036" points="1050.5,832.3701,1054.5,842.3701,1058.5,832.3701,1054.5,836.3701" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8f85d21c3e6ae9a6993ca88bb2fc4c1c]
2
@startuml
3

    
4
title **µRtWare**\nurtServiceInit()\n
5

    
6

    
7
note
8
  - - **service** : urt_service_t* - -
9
  The service to initialize.
10
  Must not be ""NULL"".
11
  - - **id** : urt_serviceid_t - -
12
  Unique, numeric identifier of the service.
13
  ====
14
  - - **return** : urt_status_t - -
15
  Returns ""URT_STATUS_OK"" on success.
16
  Returns ""URT_STATUS_SERVICE_DUPLICATE"" if another service with the same identifier already exists.
17
endnote
18

    
19

    
20
start
21
:initialize members;
22
note
23
  * **next** ← ""NULL""
24
  * **id** ← id
25
  * urtMutexInit(**lock**)
26
  * **requestQueue_front** ← ""NULL""
27
  * **requestQueue_hrtBack** ← ""NULL""
28
  * **requestQueue_fsrtBack** ← ""NULL""
29
  * **requestQueue_back** ← ""NULL""
30
  * urtEventSourceInit(**evtSource**)
31
  * urtEventListenerInit(**evtListener**)
32
  .. URT_CFG_RPC_PROFILING == true ..
33
  * **numCalls** ← 0
34
endnote
35
:register event listener to source;
36
:lock core;
37
:access first service;
38
while (Service is not ""NULL""\nand service ID is lower?) is (yes)
39
  :proceed to next service;
40
endwhile (no)
41
if (Current service is ""NULL""?) then (yes)
42
  :append self to core's list of services;
43
  :unlock core;
44
  stop
45
  note
46
    Returns ""URT_STATUS_OK"":
47
  endnote
48
elseif (Current service ID is greater?) then (yes)
49
  :insert self in front of current service;
50
  :unlock core;
51
  stop
52
  note
53
    Returns ""URT_STATUS_OK"":
54
  endnote
55
else (no)
56
  :unlock core;
57
  stop
58
  note
59
    Returns ""URT_STATUS_SERVICE_DUPLICATE"":
60
  endnote
61
endif
62

    
63

    
64
@enduml
65

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