Add design documentation 40/201040/2
authorAdrian Szyndela <adrian.s@samsung.com>
Thu, 7 Mar 2019 10:44:53 +0000 (11:44 +0100)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Thu, 7 Mar 2019 14:22:41 +0000 (15:22 +0100)
Change-Id: I123ed895c624fe712d4bd3f6da8f72c820e3a87f

doc/design.txt [new file with mode: 0644]
doc/dia/Classes-only-serialized-backend.dia [new file with mode: 0644]
doc/dia/Classes-only-serialized-backend.png [new file with mode: 0644]
doc/dia/Classes-use-only-serialized.dia [new file with mode: 0644]
doc/dia/Classes-use-only-serialized.png [new file with mode: 0644]
doc/dia/Classes.dia [new file with mode: 0644]
doc/dia/Classes.png [new file with mode: 0644]
doc/dia/UseCases.dia [new file with mode: 0644]
doc/dia/UseCases.png [new file with mode: 0644]

diff --git a/doc/design.txt b/doc/design.txt
new file mode 100644 (file)
index 0000000..5361ca9
--- /dev/null
@@ -0,0 +1,34 @@
+dia/ subdirectory contains dia design diagrams for libdbuspolicy along with generated pngs.
+
+This is a short description of the diagrams:
+- UseCases - an overview of use cases;
+- Classes - a diagram of classes, basic version:
+    - MatchItem, MatchItemWithUserAndGroup - queries constructed by PolicyChecker;
+    - PolicyChecker - entry point for checking policy; creates MatchItems to pass them as
+               queries to StorageBackends; it chooses StorageBackend depending on the system
+               availability (e.g. if serialized policy file exists);
+    - StorageBackend - interface class; defines query interface for PolicyChecker,
+               and provides entry point for printing content;
+    - StorageBackendXML - storage specific for XML-based data; supports adding items and
+               provides accessory functions for serialization;
+    - XmlParser - parser for XML data; creates items and adds them to StorageBackendXML;
+    - StorageBackendSerialized - storage specific for serialized data;
+    - Serializer - a translator between XML-based data and serialized data; used as an
+               entry point for serializator tool;
+    - Printer - an entry point for printer tool;
+    - FlatBuffers - a library used for management of serialized data.
+
+- Classes-use-only-serialized - a diagram of classes; this is improved Classes;
+       the differences are:
+    - PolicyChecker - uses only StorageBackendSerialized;
+    - Serializer - used for creating serialized data from StorageBackendXML
+               if serialized policy file is not available;
+    - StorageBackendXML - serves only as an intermediate stage for StorageBackendSerialized;
+
+- Classes-only-serialized-backend - a diagram of classes; this is potential improvement
+       of Classes-use-only-serialized; the differences are:
+    - There is no StorageBackendXML;
+    - Serializer uses XmlParser to create FlatBuffers directly (in case of unavailable
+               serialized policy file);
+       - we are not sure if this will improve initialization time, as all the objects have to be
+               fully created before serialization anyway.
diff --git a/doc/dia/Classes-only-serialized-backend.dia b/doc/dia/Classes-only-serialized-backend.dia
new file mode 100644 (file)
index 0000000..5ba7138
Binary files /dev/null and b/doc/dia/Classes-only-serialized-backend.dia differ
diff --git a/doc/dia/Classes-only-serialized-backend.png b/doc/dia/Classes-only-serialized-backend.png
new file mode 100644 (file)
index 0000000..5ed5c96
Binary files /dev/null and b/doc/dia/Classes-only-serialized-backend.png differ
diff --git a/doc/dia/Classes-use-only-serialized.dia b/doc/dia/Classes-use-only-serialized.dia
new file mode 100644 (file)
index 0000000..9ede973
Binary files /dev/null and b/doc/dia/Classes-use-only-serialized.dia differ
diff --git a/doc/dia/Classes-use-only-serialized.png b/doc/dia/Classes-use-only-serialized.png
new file mode 100644 (file)
index 0000000..abf24b2
Binary files /dev/null and b/doc/dia/Classes-use-only-serialized.png differ
diff --git a/doc/dia/Classes.dia b/doc/dia/Classes.dia
new file mode 100644 (file)
index 0000000..8d48c82
Binary files /dev/null and b/doc/dia/Classes.dia differ
diff --git a/doc/dia/Classes.png b/doc/dia/Classes.png
new file mode 100644 (file)
index 0000000..230aef2
Binary files /dev/null and b/doc/dia/Classes.png differ
diff --git a/doc/dia/UseCases.dia b/doc/dia/UseCases.dia
new file mode 100644 (file)
index 0000000..e3d41af
Binary files /dev/null and b/doc/dia/UseCases.dia differ
diff --git a/doc/dia/UseCases.png b/doc/dia/UseCases.png
new file mode 100644 (file)
index 0000000..25cc46d
Binary files /dev/null and b/doc/dia/UseCases.png differ