From: Adrian Szyndela Date: Thu, 7 Mar 2019 10:44:53 +0000 (+0100) Subject: Add design documentation X-Git-Tag: accepted/tizen/unified/20190322.075526~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F40%2F201040%2F2;p=platform%2Fcore%2Fsystem%2Flibdbuspolicy.git Add design documentation Change-Id: I123ed895c624fe712d4bd3f6da8f72c820e3a87f --- diff --git a/doc/design.txt b/doc/design.txt new file mode 100644 index 0000000..5361ca9 --- /dev/null +++ b/doc/design.txt @@ -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 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 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 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 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 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 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 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 index 0000000..25cc46d Binary files /dev/null and b/doc/dia/UseCases.png differ