From 1b1f2f5ad99691ba62208077ea9d5f7c5def90d2 Mon Sep 17 00:00:00 2001 From: Vreixo Formoso Date: Sat, 13 Oct 2007 20:03:52 +0200 Subject: [PATCH] Add a sequence diagram for the creation of a TreeNode. --- doc/devel/UML/BuilderSec.png | Bin 0 -> 24825 bytes doc/devel/UML/BuilderSec.violet | 817 ++++++++++++++++++++++++++++++++ 2 files changed, 817 insertions(+) create mode 100644 doc/devel/UML/BuilderSec.png create mode 100644 doc/devel/UML/BuilderSec.violet diff --git a/doc/devel/UML/BuilderSec.png b/doc/devel/UML/BuilderSec.png new file mode 100644 index 0000000000000000000000000000000000000000..66065ae549d500a6fbc0c3e1d136322e1af4dd13 GIT binary patch literal 24825 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 literal 0 HcmV?d00001 diff --git a/doc/devel/UML/BuilderSec.violet b/doc/devel/UML/BuilderSec.violet new file mode 100644 index 0000000..d37755c --- /dev/null +++ b/doc/devel/UML/BuilderSec.violet @@ -0,0 +1,817 @@ + + + + + + + + fs:Filesystem + + + + + + 160.0 + 73.0 + + + + + + + + + + file:FileSource + + + + + + + + + + + 192.0 + 196.0 + + + + + + + + 274.0 + 189.0 + + + + + + + + User + + + + + + 34.86475730998367 + 0.0 + + + + + + + + + + + + + b:TNBuilder + + + + + + + + + + + + + + + + + + + + + + + ftn:FileTN + + + + + + + + + + + + + + + + fs:FileStream + + + + + + + + + + + + + + + + + + + + + d:DirTreeNode + + + + + + + + + + + + + + + + + + + + 66.86475730998367 + 80.0 + + + + + + + + 539.756828460011 + 126.0 + + + + + + + + 651.0 + 0.0 + + + + + + + + 683.0 + 292.0 + + + + + + + + 571.756828460011 + 315.0 + + + + + + + + 306.0 + 338.0 + + + + + + + + 331.97135964975513 + 361.0 + + + + + + + + 363.97135964975513 + 444.0 + + + + + + + + 417.41169736595504 + 467.0 + + + + + + + + 363.97135964975513 + 550.0 + + + + + + + + 1. User wants to add a file to a dir in the iso node + + + + + + 143.89406091532933 + 16.868736840587744 + + + + + + + + 2. It creates the source filesystem and the + custom builder + + + + + + 317.51829970572646 + 74.92004824517142 + + + + + + + + 570.819415201306 + 142.7048538003265 + 0.0 + 0.0 + + + + + + + + + 570.819415201306 + 142.7048538003265 + + + + + + + + 218.81410916050066 + 114.16388304026121 + 0.0 + 0.0 + + + + + + + + + 218.81410916050066 + 114.16388304026121 + + + + + + + + 3. It gets the file from the filesystem +and add it to parent dir + + + + + + 380.5462768008707 + 196.21917397544897 + + + + + + + + 327.03195662574825 + 205.73283089547073 + 0.0 + 0.0 + + + + + + + + + 327.03195662574825 + 205.73283089547073 + + + + + + + + 4. The dir delegates in the builder. +5. The builder stat's the source file. In + this example it's a reg. file + + + + + + 767.038589176755 + 206.92203801047344 + + + + + + + + 694.4969551615891 + 312.7614712457156 + 0.0 + 0.0 + + + + + + + + + 694.4969551615891 + 312.7614712457156 + + + + + + + + 316.3290925907238 + 343.68085623578634 + 0.0 + 0.0 + + + + + + + + + 316.3290925907238 + 343.68085623578634 + + + + + + + + 6. The conversion is not needed, si +the builder just creates a FileTreeNode + + + + + + 762.2817607167442 + 335.3564064307673 + + + + + + + + 520.8727163711918 + 390.0599337208925 + 0.0 + 0.0 + + + + + + + + + 520.8727163711918 + 390.0599337208925 + + + + + + + + 7. Sets the attributes from source + + + + + + 774.1738318667714 + 413.8440760209469 + + + + + + + + 8 ...and a FileStream to read contents + from the FileSource + + + + + + 762.2817607167442 + 478.0612602310938 + + + + + + + + 536.3324088662272 + 437.6282183210013 + 0.0 + 0.0 + + + + + + + + + 536.3324088662272 + 437.6282183210013 + + + + + + + + 485.19650292111015 + 514.9266807961782 + 0.0 + 0.0 + + + + + + + + + 485.19650292111015 + 514.9266807961782 + + + + + + + + 9. Finally, the FileTreeNode is added to + the parent dir, and returned to the user + + + + + + 757.5249322567332 + 556.5489298212734 + + + + + + + + 689.7401267015781 + 614.8200784564067 + 0.0 + 0.0 + + + + + + + + + 689.7401267015781 + 614.8200784564067 + + + + + + + + 363.97135964975513 + 643.0 + + + + + + + + 10. The user can change any attribute + on the FileTreeNode + + + + + + 735.3910524340093 + 659.0235200658623 + + + + + + + + 371.938166904124 + 654.780879378743 + 0.0 + 0.0 + + + + + + + + + 371.938166904124 + 654.780879378743 + + + + + + + «create» + + + + + + + + + «create» + + + + + + + + + + + + file + + + + + + + + + add_file(file,b) + + + + + + + + + create_file(file) + + + + + + + + + lstat() + + + + + + + + + S_IFREG + + + + + + + + + «create» + + + + + + + + + set attributes + + + + + + + + + + + + + + + + + ftn + + + + + + + + + «create» + + + + + + + + + set stream (fs) + + + + + + + + + + + + + + + + + ftn + + + + + + + + + «create» + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + set_permission() + + + + + + + + + + + + + + + + +