@ -1,80 +1,86 @@
<mxfile host= "app.diagrams.net" modified= "2024-02-15T12:40:37.148 Z" agent= "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" etag= "bDsGiENRX6gaS5lY3tf3" version= "22.1.21 " type= "device" >
<mxfile host= "app.diagrams.net" modified= "2024-02-15T18:57:06.815 Z" agent= "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" etag= "3ZOmdd_hiFPwvof3FZmx" version= "23.1.4 " type= "device" >
<diagram name= "Page-1" id= "xBjmK5o3fU9FCVY3KYoo" >
<diagram name= "Page-1" id= "xBjmK5o3fU9FCVY3KYoo" >
<mxGraphModel dx= "276" dy= "1 54" grid= "1" gridSize= "10" guides= "1" tooltips= "1" connect= "1" arrows= "1" fold= "1" page= "1" pageScale= "1" pageWidth= "827" pageHeight= "369 " math= "0" shadow= "0" >
<mxGraphModel dx= "989" dy= "5 54" grid= "1" gridSize= "10" guides= "1" tooltips= "1" connect= "1" arrows= "1" fold= "1" page= "1" pageScale= "1" pageWidth= "520" pageHeight= "310 " math= "0" shadow= "0" >
<root >
<root >
<mxCell id= "0" />
<mxCell id= "0" />
<mxCell id= "1" parent= "0" />
<mxCell id= "1" parent= "0" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-23 " value= "" style= "group;fillColor=#d5e8d4;strokeColor=none;strokeWidth=9;container=0;" parent= "1 " vertex= "1" connectable= "0" >
<mxGeometry x= "13 0" y= "4 0" width= "230" height= "190" as= "geometry" />
<mxCell id= "War1bj2KuZjwGKFROEHa-1 " value= "" style= "group" vertex= "1" connectable= "0" parent= "1 " >
<mxGeometry x= "10" y= "1 0" width= "230" height= "190" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-26 " value= "" style= "group;fillColor=#fff2cc;strokeColor=#d6b656 ;container=0;" parent= "1" vertex= "1" connectable= "0" >
<mxGeometry x= "440" y= "40" width= "230" height= "27 0" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-23 " value= "" style= "group;fillColor=#d5e8d4;strokeColor=none;strokeWidth=9 ;container=0;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" connectable= "0" >
<mxGeometry width= "230" height= "19 0" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-14 " value= "" style= "rounded=0;whiteSpace=wrap;html=1;" parent= "1" vertex= "1" >
<mxGeometry x= "440" y= "40" width= "230" height= "190" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-1" value= "" style= "rounded=0;whiteSpace=wrap;html=1;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" >
<mxGeometry width= "230" height= "190" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-15 " value= "" style= "rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=none;" parent= "1" vertex= "1" >
<mxGeometry x= "440" y= "40" width= "230" height= "2 90" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-2 " value= "" style= "rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=none;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" >
<mxGeometry width= "230" height= "1 90" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-16" value= "<b>Cache<br> </b>" style= "text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=default;strokeColor=default;strokeWidth=1;" parent= "1" vertex= "1" >
<mxGeometry x= "440" y= "40" width= "230" height= "40" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-3" value= "<b>CacheData </b>" style= "text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=default;strokeColor=default;strokeWidth=1;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" >
<mxGeometry width= "230" height= "40" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-17" value= "Cache() = default " style= "text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent= "1" vertex= "1" >
<mxGeometry x= "440" y= "8 0" width= "230" height= "30" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-5" value= "CacheData(uint8_t* data, size_t size) " style= "text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" >
<mxGeometry y= "4 0" width= "230" height= "30" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-18" value= "void Flush(int node = -1)" style= "text;html=1;strokeColor=#d6b656;fillColor=#fff2cc ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1" >
<mxGeometry x= "440" y= "245 " width= "230" height= "30" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-6" value= "CacheData(const CacheData&amp; other)" style= "text;html=1;strokeColor=#82b366;fillColor=#d5e8d4 ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" >
<mxGeometry y= "70 " width= "230" height= "30" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-19 " value= "~Cache()" style= "text;html=1;strokeColor=#b85450;fillColor=#f8cecc ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1" >
<mxGeometry x= "440" y= "11 0" width= "230" height= "30" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-7 " value= "~CacheData ()" style= "text;html=1;strokeColor=#82b366;fillColor=#d5e8d4 ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" >
<mxGeometry y= "10 0" width= "230" height= "30" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-20" value= "void Init(CachePolicy*, CopyPolicy*, MemFree*, MemAlloc*)" style= "text;html=1;strokeColor=#b85450;fillColor=#f8cecc ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1" >
<mxGeometry x= "440" y= "14 0" width= "230" height= "6 0" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-8" value= "void WaitOnCompletion()" style= "text;html=1;strokeColor=#82b366;fillColor=#d5e8d4 ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" >
<mxGeometry y= "13 0" width= "230" height= "3 0" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-21 " value= "" style= "endArrow=none;html=1;rounded=0;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;strokeColor=none;" parent= "1" source= "tB5LUjmhD6zCi5oJ_og_-20" target= "tB5LUjmhD6zCi5oJ_og_-20 " edge= "1" >
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-9 " value= "" style= "endArrow=none;html=1;rounded=0;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;strokeColor=none;" parent= "War1bj2KuZjwGKFROEHa- 1" source= "tB5LUjmhD6zCi5oJ_og_-8" target= "tB5LUjmhD6zCi5oJ_og_-8 " edge= "1" >
<mxGeometry width= "50" height= "50" relative= "1" as= "geometry" >
<mxGeometry width= "50" height= "50" relative= "1" as= "geometry" >
<mxPoint x= "970" y= "41 0" as= "sourcePoint" />
<mxPoint x= "1020" y= "36 0" as= "targetPoint" />
<mxPoint x= "530" y= "37 0" as= "sourcePoint" />
<mxPoint x= "580" y= "32 0" as= "targetPoint" />
</mxGeometry>
</mxGeometry>
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-22" value= "std::unique_ptr&lt;CacheData&gt; Access(uint8_t* data, size_t size)" style= "text;html=1;strokeColor=#d6b656;fillColor=#fff2cc ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1" >
<mxGeometry x= "440" y= "195 " width= "230" height= "5 0" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-11" value= "uint8_t* GetDataLocation() const" style= "text;html=1;strokeColor=#82b366;fillColor=#d5e8d4 ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War1bj2KuZjwGKFROEHa- 1" vertex= "1" >
<mxGeometry y= "160 " width= "230" height= "3 0" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-24 " value= "void Clear() " style= "text;html=1;strokeColor=#d6b656;fillColor=#fff2cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex = "1" >
<mxGeometry x= "440" y= "275 " width= "230" height= "3 0" as= "geometry" />
<mxCell id= "War1bj2KuZjwGKFROEHa-2 " value= "" style= "group" vertex= "1" connectable= "0" parent = "1" >
<mxGeometry x= "280" y= "10 " width= "230" height= "29 0" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-25 " value= "void Invalidate() " style= "text;html=1;strokeColor=#d6b656;fillColor=#fff2cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1 " >
<mxGeometry x= "440" y= "305" width= "230" height= "25 " as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-26 " value= "" style= "group;fillColor=#fff2cc;strokeColor=#d6b656;container=0;" parent= "War1bj2KuZjwGKFROEHa-2" vertex= "1" connectable= "0 " >
<mxGeometry width= "230" height= "270 " as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-1" value= "" style= "rounded=0;whiteSpace=wrap;html=1;" parent= "1" vertex= "1" >
<mxGeometry x= "130" y= "40" width= "230" height= "190" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-14 " value= "" style= "rounded=0;whiteSpace=wrap;html=1;" parent= "War 1bj2KuZjwGKFROEHa-2 " vertex= "1" >
<mxGeometry width= "230" height= "190" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-2 " value= "" style= "rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=none;" parent= "1" vertex= "1" >
<mxGeometry x= "130" y= "40" width= "230" height= "1 90" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-15 " value= "" style= "rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=none;" parent= "War 1bj2KuZjwGKFROEHa-2 " vertex= "1" >
<mxGeometry width= "230" height= "2 90" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-3" value= "<b>CacheData </b>" style= "text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=default;strokeColor=default;strokeWidth=1;" parent= "1" vertex= "1" >
<mxGeometry x= "130" y= "40" width= "230" height= "40" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-16" value= "<b>Cache<br> </b>" style= "text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=default;strokeColor=default;strokeWidth=1;" parent= "War 1bj2KuZjwGKFROEHa-2 " vertex= "1" >
<mxGeometry width= "230" height= "40" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-5" value= "CacheData(uint8_t* data, size_t size) " style= "text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent= "1" vertex= "1" >
<mxGeometry x= "130" y= "8 0" width= "230" height= "30" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-17" value= "Cache() = default " style= "text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent= "War 1bj2KuZjwGKFROEHa-2 " vertex= "1" >
<mxGeometry y= "4 0" width= "230" height= "30" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-6" value= "CacheData(const CacheData&amp; other)" style= "text;html=1;strokeColor=#82b366;fillColor=#d5e8d4 ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1" >
<mxGeometry x= "130" y= "110 " width= "230" height= "30" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-18" value= "void Flush(int node = -1)" style= "text;html=1;strokeColor=#d6b656;fillColor=#fff2cc ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War 1bj2KuZjwGKFROEHa-2 " vertex= "1" >
<mxGeometry y= "205 " width= "230" height= "30" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-7 " value= "~CacheData ()" style= "text;html=1;strokeColor=#82b366;fillColor=#d5e8d4 ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1" >
<mxGeometry x= "130" y= "14 0" width= "230" height= "30" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-19 " value= "~Cache()" style= "text;html=1;strokeColor=#b85450;fillColor=#f8cecc ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War 1bj2KuZjwGKFROEHa-2 " vertex= "1" >
<mxGeometry y= "7 0" width= "230" height= "30" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-8" value= "void WaitOnCompletion()" style= "text;html=1;strokeColor=#82b366;fillColor=#d5e8d4 ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1" >
<mxGeometry x= "130" y= "17 0" width= "230" height= "3 0" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-20" value= "void Init(CachePolicy*, CopyPolicy*, MemFree*, MemAlloc*)" style= "text;html=1;strokeColor=#b85450;fillColor=#f8cecc ;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War 1bj2KuZjwGKFROEHa-2 " vertex= "1" >
<mxGeometry y= "10 0" width= "230" height= "6 0" as= "geometry" />
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-9 " value= "" style= "endArrow=none;html=1;rounded=0;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;strokeColor=none;" parent= "1" source= "tB5LUjmhD6zCi5oJ_og_-8" target= "tB5LUjmhD6zCi5oJ_og_-8 " edge= "1" >
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-21 " value= "" style= "endArrow=none;html=1;rounded=0;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;strokeColor=none;" parent= "War 1bj2KuZjwGKFROEHa-2 " source= "tB5LUjmhD6zCi5oJ_og_-20" target= "tB5LUjmhD6zCi5oJ_og_-20 " edge= "1" >
<mxGeometry width= "50" height= "50" relative= "1" as= "geometry" >
<mxGeometry width= "50" height= "50" relative= "1" as= "geometry" >
<mxPoint x= "660" y= "41 0" as= "sourcePoint" />
<mxPoint x= "710" y= "36 0" as= "targetPoint" />
<mxPoint x= "530" y= "37 0" as= "sourcePoint" />
<mxPoint x= "580" y= "32 0" as= "targetPoint" />
</mxGeometry>
</mxGeometry>
</mxCell>
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-11" value= "uint8_t* GetDataLocation() const" style= "text;html=1;strokeColor=#82b366;fillColor=#d5e8d4;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "1" vertex= "1" >
<mxGeometry x= "130" y= "200" width= "230" height= "30" as= "geometry" />
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-22" value= "std::unique_ptr&lt;CacheData&gt; Access(uint8_t* data, size_t size)" style= "text;html=1;strokeColor=#d6b656;fillColor=#fff2cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War1bj2KuZjwGKFROEHa-2" vertex= "1" >
<mxGeometry y= "155" width= "230" height= "50" as= "geometry" />
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-24" value= "void Clear()" style= "text;html=1;strokeColor=#d6b656;fillColor=#fff2cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War1bj2KuZjwGKFROEHa-2" vertex= "1" >
<mxGeometry y= "235" width= "230" height= "30" as= "geometry" />
</mxCell>
<mxCell id= "tB5LUjmhD6zCi5oJ_og_-25" value= "void Invalidate()" style= "text;html=1;strokeColor=#d6b656;fillColor=#fff2cc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent= "War1bj2KuZjwGKFROEHa-2" vertex= "1" >
<mxGeometry y= "265" width= "230" height= "25" as= "geometry" />
</mxCell>
</mxCell>
</root>
</root>
</mxGraphModel>
</mxGraphModel>