rtipc 0.5.1

Real-Time IPC, based on a zero-copy, wait-free circular message queue implementation
Documentation
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36" version="29.3.2" pages="2">
  <diagram name="Page-1" id="oTJcGQ3hZW8C925jQrNs">
    <mxGraphModel dx="2276" dy="1861" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="0" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="r3RK4nMMsb8eW-loMsLh-30" connectable="0" parent="1" style="group" value="" vertex="1">
          <mxGeometry height="460" width="480" x="210" y="90" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-9" parent="r3RK4nMMsb8eW-loMsLh-30" style="swimlane;startSize=40;horizontal=0;html=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" value="Channel 0" vertex="1">
          <mxGeometry height="112.65306122448982" width="479.9999999999999" y="18.775510204081634" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-10" parent="r3RK4nMMsb8eW-loMsLh-30" style="swimlane;startSize=40;horizontal=0;html=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" value="Channel 1" vertex="1">
          <mxGeometry height="168.97959183673476" width="479.9999999999999" y="131.42857142857147" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-11" parent="r3RK4nMMsb8eW-loMsLh-30" style="swimlane;startSize=40;horizontal=0;html=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" value="Channel 2" vertex="1">
          <mxGeometry height="159.5918367346939" width="479.9999999999999" y="300.40816326530614" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-17" parent="r3RK4nMMsb8eW-loMsLh-11" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" value="" vertex="1">
          <mxGeometry height="150.20408163265307" width="429.9999999999999" x="44.717142857142846" y="4.693877551020398" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-18" parent="r3RK4nMMsb8eW-loMsLh-17" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" value="" vertex="1">
          <mxGeometry height="150" width="429.9999999999999" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-19" parent="r3RK4nMMsb8eW-loMsLh-18" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message Buffer&lt;/b&gt;" vertex="1">
          <mxGeometry height="150" width="142" as="geometry">
            <mxRectangle height="150" width="142" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-20" parent="r3RK4nMMsb8eW-loMsLh-18" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message Buffer&lt;/b&gt;" vertex="1">
          <mxGeometry height="150" width="145" x="142" as="geometry">
            <mxRectangle height="150" width="145" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-21" parent="r3RK4nMMsb8eW-loMsLh-18" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message Buffer&lt;/b&gt;" vertex="1">
          <mxGeometry height="150" width="143" x="287" as="geometry">
            <mxRectangle height="150" width="143" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-12" parent="r3RK4nMMsb8eW-loMsLh-30" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" value="" vertex="1">
          <mxGeometry height="103.26530612244899" width="429.9999999999999" x="44.99999999999998" y="23.469387755102034" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-13" parent="r3RK4nMMsb8eW-loMsLh-12" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" value="" vertex="1">
          <mxGeometry height="103" width="429.9999999999999" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-14" parent="r3RK4nMMsb8eW-loMsLh-13" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message Buffer&lt;/b&gt;" vertex="1">
          <mxGeometry height="103" width="144" as="geometry">
            <mxRectangle height="103" width="144" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-15" parent="r3RK4nMMsb8eW-loMsLh-13" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message Buffer&lt;/b&gt;" vertex="1">
          <mxGeometry height="103" width="142" x="144" as="geometry">
            <mxRectangle height="103" width="142" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-16" parent="r3RK4nMMsb8eW-loMsLh-13" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message Buffer&lt;/b&gt;" vertex="1">
          <mxGeometry height="103" width="144" x="286" as="geometry">
            <mxRectangle height="103" width="144" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-22" parent="r3RK4nMMsb8eW-loMsLh-30" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;autosize=1;resizeWidth=1;resizeHeight=1;" value="" vertex="1">
          <mxGeometry height="159.5918367346939" width="429.9999999999999" x="44.99999999999998" y="136.1224489795918" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-23" parent="r3RK4nMMsb8eW-loMsLh-22" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" value="" vertex="1">
          <mxGeometry height="160" width="429.9999999999999" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-24" parent="r3RK4nMMsb8eW-loMsLh-23" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message&lt;/b&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp;Buffer&lt;/b&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="160" width="86" as="geometry">
            <mxRectangle height="160" width="86" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-25" parent="r3RK4nMMsb8eW-loMsLh-23" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message&lt;/b&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp;Buffer&lt;/b&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="160" width="85" x="86" as="geometry">
            <mxRectangle height="160" width="85" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-26" parent="r3RK4nMMsb8eW-loMsLh-23" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;resizeWidth=1;resizeHeight=1;" value="&lt;b&gt;Message&lt;/b&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp;Buffer&lt;/b&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="160" width="88" x="171" as="geometry">
            <mxRectangle height="160" width="88" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-28" parent="r3RK4nMMsb8eW-loMsLh-23" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;" value="&lt;b&gt;Message&lt;/b&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp;Buffer&lt;/b&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="160" width="87" x="259" as="geometry">
            <mxRectangle height="160" width="87" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-27" parent="r3RK4nMMsb8eW-loMsLh-23" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=1;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;resizeHeight=1;resizeWidth=1;" value="&lt;b&gt;Message&lt;/b&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp;Buffer&lt;/b&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="160" width="84" x="346" as="geometry">
            <mxRectangle height="160" width="84" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-8" parent="r3RK4nMMsb8eW-loMsLh-30" style="swimlane;childLayout=stackLayout;resizeParent=1;resizeParentMax=0;horizontal=1;startSize=20;horizontalStack=0;html=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;container=0;" value="Shared Memory" vertex="1">
          <mxGeometry height="459.99999999999994" width="479.9999999999999" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-42" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" value="&lt;b&gt;Client&lt;/b&gt;" vertex="1">
          <mxGeometry height="1000" width="135" x="-40.5" y="-400" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-80" parent="r3RK4nMMsb8eW-loMsLh-42" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" value="&lt;b&gt;ChannelVector&lt;/b&gt;" vertex="1">
          <mxGeometry height="40" width="130" x="2.5" y="390" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-53" parent="r3RK4nMMsb8eW-loMsLh-42" style="html=1;whiteSpace=wrap;" value="&lt;b&gt;VectorConfig&lt;/b&gt;" vertex="1">
          <mxGeometry height="50" width="110" x="12.5" y="82" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-76" parent="r3RK4nMMsb8eW-loMsLh-42" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" value="&lt;b&gt;VectorResource&lt;/b&gt;" vertex="1">
          <mxGeometry height="40" width="130" x="2.5" y="161" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-54" parent="r3RK4nMMsb8eW-loMsLh-42" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" value="&lt;b&gt;UnixMessageTx&lt;/b&gt;" vertex="1">
          <mxGeometry height="40" width="130" x="2.5" y="228" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-87" edge="1" parent="r3RK4nMMsb8eW-loMsLh-42" source="r3RK4nMMsb8eW-loMsLh-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-54">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="161" y="181" />
              <mxPoint x="161" y="240" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-84" edge="1" parent="r3RK4nMMsb8eW-loMsLh-42" source="r3RK4nMMsb8eW-loMsLh-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-80">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="-39" y="190" />
              <mxPoint x="-39" y="400" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-56" edge="1" parent="r3RK4nMMsb8eW-loMsLh-42" source="r3RK4nMMsb8eW-loMsLh-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="r3RK4nMMsb8eW-loMsLh-76">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="-39" y="107" />
              <mxPoint x="-39" y="170" />
            </Array>
            <mxPoint x="-104.5" y="62" as="sourcePoint" />
            <mxPoint x="-111.44999999999982" y="336" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-57" connectable="0" parent="r3RK4nMMsb8eW-loMsLh-56" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;b&gt;Allocate()&lt;/b&gt;" vertex="1">
          <mxGeometry relative="1" x="-0.0601" y="3" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-44" parent="r3RK4nMMsb8eW-loMsLh-42" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};horizontal=0;" value="&lt;b&gt;Producer&lt;/b&gt;" vertex="1">
          <mxGeometry height="80" width="40" x="47.5" y="525.1" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-9" edge="1" parent="r3RK4nMMsb8eW-loMsLh-42" source="r3RK4nMMsb8eW-loMsLh-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-44">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="-39.5" y="420" />
              <mxPoint x="-39.5" y="565" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-47" parent="r3RK4nMMsb8eW-loMsLh-42" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};horizontal=0;" value="&lt;b&gt;Consumer&lt;/b&gt;" vertex="1">
          <mxGeometry height="80" width="40" x="47.5" y="680.0000000000001" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-10" edge="1" parent="r3RK4nMMsb8eW-loMsLh-42" source="r3RK4nMMsb8eW-loMsLh-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-47">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="-39.5" y="420" />
              <mxPoint x="-39.5" y="720" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-48" parent="r3RK4nMMsb8eW-loMsLh-42" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};horizontal=0;" value="&lt;b&gt;Consumer&lt;/b&gt;" vertex="1">
          <mxGeometry height="80" width="40" x="47.5" y="830.2" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-11" edge="1" parent="r3RK4nMMsb8eW-loMsLh-42" source="r3RK4nMMsb8eW-loMsLh-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-48">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="-39.5" y="420" />
              <mxPoint x="-39.5" y="870" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-45" edge="1" parent="1" source="r3RK4nMMsb8eW-loMsLh-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-9">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-46" connectable="0" parent="r3RK4nMMsb8eW-loMsLh-45" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;b&gt;try_push() / force_push()&lt;/b&gt;" vertex="1">
          <mxGeometry relative="1" x="-0.5172" y="7" as="geometry">
            <mxPoint x="49" y="-8" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-49" edge="1" parent="1" source="r3RK4nMMsb8eW-loMsLh-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="r3RK4nMMsb8eW-loMsLh-47">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-50" connectable="0" parent="r3RK4nMMsb8eW-loMsLh-49" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;b&gt;pop()&lt;/b&gt;" vertex="1">
          <mxGeometry relative="1" x="0.1034" y="-3" as="geometry">
            <mxPoint y="-11" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-51" edge="1" parent="1" source="r3RK4nMMsb8eW-loMsLh-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="r3RK4nMMsb8eW-loMsLh-48">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-12" connectable="0" parent="r3RK4nMMsb8eW-loMsLh-51" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;b&gt;pop()&lt;/b&gt;" vertex="1">
          <mxGeometry relative="1" x="0.3006" y="2" as="geometry">
            <mxPoint x="16" y="-12" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-58" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" value="&lt;b&gt;Server&lt;/b&gt;" vertex="1">
          <mxGeometry height="1000" width="139" x="791.5" y="-400" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-78" edge="1" parent="r3RK4nMMsb8eW-loMsLh-58" source="r3RK4nMMsb8eW-loMsLh-63" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-77">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="169" y="270" />
              <mxPoint x="169" y="330" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-63" parent="r3RK4nMMsb8eW-loMsLh-58" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" value="&lt;b&gt;Unix&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;MessageRx&lt;/span&gt;&lt;/b&gt;" vertex="1">
          <mxGeometry height="40" width="130" x="4.5" y="250" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-5" edge="1" parent="r3RK4nMMsb8eW-loMsLh-58" source="r3RK4nMMsb8eW-loMsLh-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-79">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="169" y="350" />
              <mxPoint x="169" y="400" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-77" parent="r3RK4nMMsb8eW-loMsLh-58" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" value="&lt;b&gt;VectorResource&lt;/b&gt;" vertex="1">
          <mxGeometry height="40" width="130" x="4.5" y="320" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-6" edge="1" parent="r3RK4nMMsb8eW-loMsLh-58" source="r3RK4nMMsb8eW-loMsLh-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-59">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="169" y="420" />
              <mxPoint x="169" y="565" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-79" parent="r3RK4nMMsb8eW-loMsLh-58" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" value="&lt;b&gt;ChannelVector&lt;/b&gt;" vertex="1">
          <mxGeometry height="40" width="130" x="4.5" y="390" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-59" parent="r3RK4nMMsb8eW-loMsLh-58" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};horizontal=0;" value="&lt;b&gt;Consumer&lt;/b&gt;" vertex="1">
          <mxGeometry height="80" width="40" x="49.5" y="524.97" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-60" parent="r3RK4nMMsb8eW-loMsLh-58" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};horizontal=0;" value="&lt;b&gt;Producer&lt;/b&gt;" vertex="1">
          <mxGeometry height="80" width="40" x="49.5" y="666.1200000000001" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-7" edge="1" parent="r3RK4nMMsb8eW-loMsLh-58" source="r3RK4nMMsb8eW-loMsLh-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-60">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="168.5" y="420" />
              <mxPoint x="168.5" y="707" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-61" parent="r3RK4nMMsb8eW-loMsLh-58" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};horizontal=0;" value="&lt;div&gt;&lt;b&gt;Producer&lt;/b&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="40" x="49.5" y="830.1000000000001" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-8" edge="1" parent="r3RK4nMMsb8eW-loMsLh-58" source="r3RK4nMMsb8eW-loMsLh-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-61">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="168.5" y="420" />
              <mxPoint x="168.5" y="870" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-69" edge="1" parent="1" source="r3RK4nMMsb8eW-loMsLh-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="r3RK4nMMsb8eW-loMsLh-59">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-75" connectable="0" parent="r3RK4nMMsb8eW-loMsLh-69" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;b&gt;pop()&lt;/b&gt;" vertex="1">
          <mxGeometry relative="1" x="0.0493" y="2" as="geometry">
            <mxPoint x="1" y="-11" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-71" edge="1" parent="1" source="r3RK4nMMsb8eW-loMsLh-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-10">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-73" connectable="0" parent="r3RK4nMMsb8eW-loMsLh-71" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;b&gt;try_push() / force_push()&lt;/b&gt;" vertex="1">
          <mxGeometry relative="1" x="-0.2346" y="1" as="geometry">
            <mxPoint x="-11" y="-14" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-72" edge="1" parent="1" source="r3RK4nMMsb8eW-loMsLh-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-11">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-74" connectable="0" parent="r3RK4nMMsb8eW-loMsLh-72" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;b&gt;try_push() / force_push()&lt;/b&gt;" vertex="1">
          <mxGeometry relative="1" x="-0.1463" y="1" as="geometry">
            <mxPoint x="-11" y="-18" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="r3RK4nMMsb8eW-loMsLh-62" parent="1" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;flipV=0;legacyAnchorPoints=0;flipH=1;direction=south;verticalAlign=top;" value="&lt;b&gt;Unix Domain Socket&lt;/b&gt;" vertex="1">
          <mxGeometry height="70" width="550" x="165" y="-172" as="geometry" />
        </mxCell>
        <mxCell id="XGcC9cr64ImD2rFDcLjP-3" edge="1" parent="1" source="r3RK4nMMsb8eW-loMsLh-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=0;" target="r3RK4nMMsb8eW-loMsLh-63">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="410" y="-140" />
              <mxPoint x="410" y="-140" />
            </Array>
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="FL0aZHThTSJtXkP5GJQ_" name="Page-2">
    <mxGraphModel dx="1408" dy="751" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>