Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / service / urtServiceInit.svg @ 155b0443

History | View | Annotate | Download (26.613 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="962px" preserveAspectRatio="none" style="width:1112px;height:962px;" version="1.1" viewBox="0 0 1112 962" width="1112px" zoomAndPan="magnify"><defs><filter height="300%" id="f10ia0x871a6j9" 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,259.3203 L886,259.3203 L886,82.8594 L876,72.8594 L225,72.8594 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" 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="457" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="461" y="165.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="61" x="461" y="165.0903">callback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="124" x="526" y="165.0903">: urt_servicefunc_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="654" x2="886" y1="161.0898" y2="161.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="307" x="231" y="180.7231">Callabck function to be executed by this service.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="231" y="195.856">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="311" y="195.856">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="343" y="195.856">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="886" y1="203.9219" y2="203.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="886" y1="205.9219" y2="205.9219"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="225" x2="484.5" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="488.5" y="220.4888"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="488.5" y="220.4888">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="537.5" y="220.4888">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="626.5" x2="886" y1="216.4883" y2="216.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="231" y="236.1216">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="284" y="236.1216">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="392" y="236.1216">on success.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="231" y="251.2544">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="284" y="251.2544">URT_STATUS_SERVICE_DUPLICATE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="359" x="512" y="251.2544">if another service with the same identifier already exists.</text><ellipse cx="555.5" cy="289.3203" fill="#000000" filter="url(#f10ia0x871a6j9)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M222,309.3203 L222,470.6484 A0,0 0 0 0 222,470.6484 L470,470.6484 A0,0 0 0 0 470,470.6484 L470,393.9844 L490,389.9844 L470,385.9844 L470,319.3203 L460,309.3203 L222,309.3203 A0,0 0 0 0 222,309.3203 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M460,309.3203 L460,319.3203 L470,319.3203 L460,309.3203 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="233.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="32" x="239" y="326.3872">next</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="11" x="275" y="326.3872">←</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="290" y="326.3872">NULL</text><ellipse cx="233.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="14" x="239" y="341.52">id</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="257" y="341.52">← id</text><ellipse cx="233.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" lengthAdjust="spacingAndGlyphs" textLength="81" x="239" y="356.6528">urtMutexInit(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="30" x="320" y="356.6528">lock</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="350" y="356.6528">)</text><ellipse cx="233.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="61" x="239" y="371.7856">callback</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="66" x="304" y="371.7856">← callback</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="222" x2="232.5" y1="382.418" y2="382.418"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="236.5" y="386.4185">URT_CFG_RPC_PROFILING == true</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="459.5" x2="470" y1="382.418" y2="382.418"/><ellipse cx="233.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" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="90" x="239" y="402.0513">minDuration</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="333" y="402.0513">← 0xF..F</text><ellipse cx="233.5" cy="412.75" 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="94" x="239" y="417.1841">maxDuration</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="337" y="417.1841">← 0</text><ellipse cx="233.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="102" x="239" y="432.3169">sumDurations</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="345" y="432.3169">← 0</text><ellipse cx="233.5" cy="443.0156" 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="239" y="447.4497">numCalls</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="310" y="447.4497">← 0</text><ellipse cx="233.5" cy="458.1484" 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="99" x="239" y="462.5825">numTimeouts</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="342" y="462.5825">← 0</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="490" y="373"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="500" y="394.1387">initialize members</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="517" y="490.6484"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="527" y="511.7871">lock core</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="485.5" y="544.6172"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="495.5" y="565.7559">access first service</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="471.5" y="655.9058"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="481.5" y="677.0444">proceed to next service</text><polygon fill="#FEFECE" filter="url(#f10ia0x871a6j9)" points="487.5,598.5859,623.5,598.5859,635.5,611.3906,623.5,624.1953,487.5,624.1953,475.5,611.3906,487.5,598.5859" 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="634.4058">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="487.5" y="608.7964">Service is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="569.5" y="608.7964">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="487.5" y="621.6011">and service ID is lower?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="461.5" y="608.7964">no</text><polygon fill="#FEFECE" filter="url(#f10ia0x871a6j9)" points="153,731.8745,293,731.8745,305,743.8745,293,755.8745,153,755.8745,141,743.8745,153,731.8745" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="766.085">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="153" y="747.6826">Current service is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="259" y="747.6826">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="287" y="747.6826">?</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="100" y="787.585"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="226" x="110" y="808.7236">append self to core's list of services</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="856.5537"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="877.6924">unlock core</text><path d="M10,925.5225 L10,950.6553 A0,0 0 0 0 10,950.6553 L192,950.6553 A0,0 0 0 0 192,950.6553 L192,943.5225 L212,938.0889 L192,935.5225 L192,935.5225 L182,925.5225 L10,925.5225 A0,0 0 0 0 10,925.5225 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,925.5225 L182,935.5225 L192,935.5225 L182,925.5225 " 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="942.5894">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="942.5894">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="942.5894">:</text><ellipse cx="223" cy="938.0889" fill="#FFFFFF" filter="url(#f10ia0x871a6j9)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="938.0889" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f10ia0x871a6j9)" points="494.5,731.8745,663.5,731.8745,675.5,743.8745,663.5,755.8745,494.5,755.8745,482.5,743.8745,494.5,731.8745" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="583" y="766.085">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="494.5" y="747.6826">Current service ID is greater?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="675.5" y="741.2803">no</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="456.5" y="787.585"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="225" x="466.5" y="808.7236">insert self in front of current service</text><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="532.5" y="856.5537"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="542.5" y="877.6924">unlock core</text><path d="M366,925.5225 L366,950.6553 A0,0 0 0 0 366,950.6553 L548,950.6553 A0,0 0 0 0 548,950.6553 L548,943.5225 L568,938.0889 L548,935.5225 L548,935.5225 L538,925.5225 L366,925.5225 A0,0 0 0 0 366,925.5225 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M538,925.5225 L538,935.5225 L548,935.5225 L538,925.5225 " 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="942.5894">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="425" y="942.5894">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="529" y="942.5894">:</text><ellipse cx="579" cy="938.0889" fill="#FFFFFF" filter="url(#f10ia0x871a6j9)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="579" cy="938.0889" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f10ia0x871a6j9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="1008" y="818.667"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="1018" y="839.8057">unlock core</text><path d="M721.5,887.6357 L721.5,912.7686 A0,0 0 0 0 721.5,912.7686 L1023.5,912.7686 A0,0 0 0 0 1023.5,912.7686 L1023.5,905.6357 L1043.5,900.2021 L1023.5,897.6357 L1023.5,897.6357 L1013.5,887.6357 L721.5,887.6357 A0,0 0 0 0 721.5,887.6357 " fill="#FBFB77" filter="url(#f10ia0x871a6j9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1013.5,887.6357 L1013.5,897.6357 L1023.5,897.6357 L1013.5,887.6357 " 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="904.7026">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="780.5" y="904.7026">URT_STATUS_SERVICE_DUPLICATE</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1004.5" y="904.7026">:</text><ellipse cx="1054.5" cy="900.2021" fill="#FFFFFF" filter="url(#f10ia0x871a6j9)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1054.5" cy="900.2021" 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="259.3203" y2="279.3203"/><polygon fill="#A80036" points="551.5,269.3203,555.5,279.3203,559.5,269.3203,555.5,273.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="299.3203" y2="373"/><polygon fill="#A80036" points="551.5,363,555.5,373,559.5,363,555.5,367" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="406.9688" y2="490.6484"/><polygon fill="#A80036" points="551.5,480.6484,555.5,490.6484,559.5,480.6484,555.5,484.6484" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="524.6172" y2="544.6172"/><polygon fill="#A80036" points="551.5,534.6172,555.5,544.6172,559.5,534.6172,555.5,538.6172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="624.1953" y2="655.9058"/><polygon fill="#A80036" points="551.5,645.9058,555.5,655.9058,559.5,645.9058,555.5,649.9058" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="689.8745" y2="699.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="651.5" y1="699.8745" y2="699.8745"/><polygon fill="#A80036" points="647.5,664.0854,651.5,654.0854,655.5,664.0854,651.5,660.0854" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="651.5" y1="611.3906" y2="699.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="635.5" y1="611.3906" y2="611.3906"/><polygon fill="#A80036" points="645.5,607.3906,635.5,611.3906,645.5,615.3906,641.5,611.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="475.5" x2="459.5" y1="611.3906" y2="611.3906"/><polygon fill="#A80036" points="455.5,650.0854,459.5,660.0854,463.5,650.0854,459.5,654.0854" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="459.5" x2="459.5" y1="611.3906" y2="711.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="459.5" x2="555.5" y1="711.8745" y2="711.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="711.8745" y2="716.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="555.5" y1="578.5859" y2="598.5859"/><polygon fill="#A80036" points="551.5,588.5859,555.5,598.5859,559.5,588.5859,555.5,592.5859" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="821.5537" y2="856.5537"/><polygon fill="#A80036" points="219,846.5537,223,856.5537,227,846.5537,223,850.5537" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="890.5225" y2="927.0889"/><polygon fill="#A80036" points="219,917.0889,223,927.0889,227,917.0889,223,921.0889" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="821.5537" y2="856.5537"/><polygon fill="#A80036" points="575,846.5537,579,856.5537,583,846.5537,579,850.5537" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="890.5225" y2="927.0889"/><polygon fill="#A80036" points="575,917.0889,579,927.0889,583,917.0889,579,921.0889" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1054.5" x2="1054.5" y1="852.6357" y2="889.2021"/><polygon fill="#A80036" points="1050.5,879.2021,1054.5,889.2021,1058.5,879.2021,1054.5,883.2021" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="755.8745" y2="787.585"/><polygon fill="#A80036" points="219,777.585,223,787.585,227,777.585,223,781.585" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="579" x2="579" y1="755.8745" y2="787.585"/><polygon fill="#A80036" points="575,777.585,579,787.585,583,777.585,579,781.585" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="305" x2="482.5" y1="743.8745" y2="743.8745"/><polygon fill="#A80036" points="472.5,739.8745,482.5,743.8745,472.5,747.8745,476.5,743.8745" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="555.5" x2="223" y1="716.8745" y2="716.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="716.8745" y2="731.8745"/><polygon fill="#A80036" points="219,721.8745,223,731.8745,227,721.8745,223,725.8745" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="675.5" x2="1054.5" y1="743.8745" y2="743.8745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1054.5" x2="1054.5" y1="743.8745" y2="818.667"/><polygon fill="#A80036" points="1050.5,808.667,1054.5,818.667,1058.5,808.667,1054.5,812.667" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b9741ce88a09e48af554c13bb1f6aa1c]
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
  - - **callback** : urt_servicefunc_t* - -
14
  Callabck function to be executed by this service.
15
  Must not be ""NULL"".
16
  ====
17
  - - **return** : urt_status_t - -
18
  Returns ""URT_STATUS_OK"" on success.
19
  Returns ""URT_STATUS_SERVICE_DUPLICATE"" if another service with the same identifier already exists.
20
endnote
21

    
22

    
23
start
24
:initialize members;
25
note
26
  * **next** ← ""NULL""
27
  * **id** ← id
28
  * urtMutexInit(**lock**)
29
  * **callback** ← callback
30
  .. URT_CFG_RPC_PROFILING == true ..
31
  * **minDuration** ← 0xF..F
32
  * **maxDuration** ← 0
33
  * **sumDurations** ← 0
34
  * **numCalls** ← 0
35
  * **numTimeouts** ← 0
36
endnote
37
:lock core;
38
:access first service;
39
while (Service is not ""NULL""\nand service ID is lower?) is (yes)
40
  :proceed to next service;
41
endwhile (no)
42
if (Current service is ""NULL""?) then (yes)
43
  :append self to core's list of services;
44
  :unlock core;
45
  stop
46
  note
47
    Returns ""URT_STATUS_OK"":
48
  endnote
49
elseif (Current service ID is greater?) then (yes)
50
  :insert self in front of current service;
51
  :unlock core;
52
  stop
53
  note
54
    Returns ""URT_STATUS_OK"":
55
  endnote
56
else (no)
57
  :unlock core;
58
  stop
59
  note
60
    Returns ""URT_STATUS_SERVICE_DUPLICATE"":
61
  endnote
62
endif
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>