[Kst] branches/work/kst/hierarchy/kst/devel-docs
Eli Fidler
eli at staikos.net
Fri Nov 17 01:43:32 CET 2006
SVN commit 605516 by fidler:
some implementation details, notes about multiple naming hierarchies
M +21 -4 objectnaming.txt
--- branches/work/kst/hierarchy/kst/devel-docs/objectnaming.txt #605515:605516
@@ -2,6 +2,10 @@
in a hierarchical namespace. The general idea is to change tagNames to be a
path instead of a simple name.
+A full path should uniquely specify a particular object in the hierarchy. We
+may use separate hierarchies for different object types to allow, for example,
+a plot and a curve to have the same name.
+
The relationship of a KstObject being below another KstObject in the hierarchy
means that the parent object CREATED the child object. Note that this is not
the same thing as data PROVIDERS, which form a dependency graph (perhaps with
@@ -32,11 +36,13 @@
-------
- Data vectors read from a data source (e.g. KstVector::tagName()). These names
will not collide as long as there are unique names in each data source.
-- Data source metadata strings, scalars (author, dataset description, numFields, etc.)
+- Data source metadata strings, scalars (author, dataset description,
+ numFields, etc.)
Level 3
-------
-- KstObjects generated from level 2 objects (e.g. KstScalars for min, max, etc.).
+- KstObjects generated from level 2 objects (e.g. KstScalars for min, max,
+ etc.).
- Data object metadata strings, scalars (units, field description, etc.)
@@ -47,8 +53,8 @@
cause conflicts with datasources using '-' within field names.
-In addition to the global lists of scalars, vectors, matrices, etc., we can view the data as a
-single tree of KstObjects:
+In addition to the global lists of scalars, vectors, matrices, etc., we can
+view the data as a single tree of KstObjects:
- DataSource1
\
@@ -77,3 +83,14 @@
We could also have separate trees (or filter the single tree) to show only
scalars or strings (or whatever) in an organized way.
+
+
+IMPLEMENTATION DETAILS
+======================
+Wherever tags can be set, a "QStringList tagContext" parameter is added to
+represent the context of the tag (e.g. KstObject::setTagName(const QString&
+tag, QStringList tagContext). A tagContext value of KstData::globalTagContext
+(or QStringList(), the empty string list) indicates a Level 1 object.
+
+A tag value of QString::null means that a globally-unique tag name
+should be automatically generated.
More information about the Kst
mailing list