Removed the possible fail case when inserting a node in PathTree; if the string pool is full, one should throw an exception from StringPool.
It is now possible to remove nodes from PathTree using a special ComparisonFlag for the purpose (users should call PathTree::remove()).
PathTree now has a special node that represents the root of the entire tree. Previously the tree had multiple root nodes (parent==0). Now only the one root node has a null parent. This makes it possible to traverse the nodes at the root level of the tree similarly to nodes of any other branch.
Consequently all actual nodes of the tree now have a parent.
Renamed PathTree::Node::composePath() to path() because 1) too much visual similarity with comparePath(), and 2) there is no non-composing path() method, so no need to qualify it.
Refactor: Adapting PathTree for use in Archive
Removed the possible fail case when inserting a node in PathTree; if
the string pool is full, one should throw an exception from StringPool.
It is now possible to remove nodes from PathTree using a special
ComparisonFlag for the purpose (users should call PathTree::remove()).
PathTree now has a special node that represents the root of the entire
tree. Previously the tree had multiple root nodes (parent==0). Now
only the one root node has a null parent. This makes it possible to
traverse the nodes at the root level of the tree similarly to nodes
of any other branch.
Consequently all actual nodes of the tree now have a parent.
Renamed PathTree::Node::composePath() to path() because
1) too much visual similarity with comparePath(), and
2) there is no non-composing path() method, so no need to qualify it.