From 2a4501644cad414f76b0a0b9e4d061ea491870a8 Mon Sep 17 00:00:00 2001 From: Vreixo Formoso Date: Mon, 15 Oct 2007 22:04:30 +0200 Subject: [PATCH] Added a class diagram for burn_source design. --- doc/devel/UML/burn_source.class.violet | 634 +++++++++++++++++++++++++ doc/devel/UML/burn_source.png | Bin 0 -> 35652 bytes 2 files changed, 634 insertions(+) create mode 100644 doc/devel/UML/burn_source.class.violet create mode 100644 doc/devel/UML/burn_source.png diff --git a/doc/devel/UML/burn_source.class.violet b/doc/devel/UML/burn_source.class.violet new file mode 100644 index 0000000..f5b3654 --- /dev/null +++ b/doc/devel/UML/burn_source.class.violet @@ -0,0 +1,634 @@ + + + + + + + + + + «interface» +BurnSource + + + + + + libburn + + + + + 600.0 + 50.0 + + + + + + + + 612.4370214406964 + 81.3237865499184 + + + + + + + + Ecma119Source + + + + + + 604.1172144213822 + 242.59825146055505 + + + + + + + + WriterState + + + + + + 861.1034292438676 + 244.31119796826698 + + + + + + + + FilesWriterSt + + + + + + 984.2531292100068 + 359.95094883087904 + + + + + + + + VolDescWriterSt + + + + + + 717.2457054234224 + 357.4185959653686 + + + + + + + + DirInfoWriterSt + + + + + + 854.6043620021998 + 355.85097462036043 + + + + + + + + Ecma119Image + + + + + + 392.3294860655768 + 240.39714472372754 + + + + + + + + The context data for image burn sources, contains +references to the tree, creation options... + + + + + + 261.45257180386454 + 85.80450046553075 + + + + + + + + Ecma119Node + + + + + + 291.8219414851778 + 612.806815288254 + + + + + + + + init() +write_voldesc() +write_dir_info() + + + + + «interface» +ImageWriter + + + + + + 401.9520048709197 + 344.8700633507891 + + + + + + + + JolietNode + + + + + + 409.0872475609359 + 614.8200784564067 + + + + + + + + FileRegistry + + + + + + 718.2810974616434 + 459.0339463910502 + + + + + + + + Ecma119Writer + + + + + + 273.51763645062584 + 489.95333138112096 + + + + + + + + JolietWriter + + + + + + 404.3304191009253 + 485.1965029211101 + + + + + + + + ElToritoWriter + + + + + + 512.5482665661723 + 485.19650292111 + + + + + + + + size : off_t +block : uint32_t + + + + + IsoFile + + + + + + 720.659511691649 + 568.4410009713001 + + + + + + + + «interface» +Stream + + + + + + 909.7434429770816 + 580.3330721213274 + + + + + + + + ImageWriter goal is to encapsulate the output +of image blocks related to one "specification", +i.e. we will have an implementation for ECMA-119/RR, +other for Joliet... + +Note that having different implementations for things that +need to be written in the same block has no utility, i.e. RR +and ECMA-119 must share its Writer implementation. + +Note also that while this provides considerable encapsulation +the provided abstraction is really partial: In the relation +with WriterState the encapsulation is quite good, each +concrete state know what method to call here (notice that +this interface is also quite coupled with state). However, +with respect to Ecma119Image the abstration only refers +to implementation, as the Ecma119Image needs to know +about the ImageWriter implementations. This can't be +avoided, as Ecma119Image has to be responsible of the +instantation in the correct order and following the user +needs. + + + + + + + + 2.3784142300054896 + 160.54296052536733 + + + + + + + + The files are registered into the file registry, that will take care +about the written of content. + + + + + + 286.59891471565567 + 708.7674405416217 + + + + + + + + Each state will invoque property method in each of +the ImageWriters. Some writers can return without +outputting anything. It is possible that when dealing +with UDF or other specification we would need new +states and methods in ImageWriter + + + + + + 765.8493820617523 + 132.001989765302 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/devel/UML/burn_source.png b/doc/devel/UML/burn_source.png new file mode 100644 index 0000000000000000000000000000000000000000..5786ab29cc075491d6ee6f819d4624c1dede6ca2 GIT binary patch literal 35652 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 VL!|wOR^VH}q$T9UbDrwG{XaLw+CcyS literal 0 HcmV?d00001