--- /dev/null
+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.